All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cachelinesize_from_sysconf
      Src: /src/librawspeed/cmake/Modules/cpu-page-size.cpp:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: main
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-page-size.cpp
    functionUses: 0
    functionsReached:
    - get_cachelinesize_from_sysconf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/librawspeed/cmake/Modules/cpu-page-size.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: main
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-page-size.cpp
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cachelinesize_from_sysconf
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: get_cachelinesize_from_sysconf
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 2
    functionsReached:
    - get_cachelinesize_from_sysconf
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_sysconf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: get_cachelinesize_from_sysconf
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_sysconf()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: get_cachelinesize_from_getauxval
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached:
    - getauxval
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_getauxval()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: get_cachelinesize_from_getauxval
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_getauxval()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: get_cachelinesize_from_sysctlbyname
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_sysctlbyname()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: get_cachelinesize_from_sysctlbyname
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_sysctlbyname()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLogicalProcessorInformation
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:69,1
    - Dst: GetLogicalProcessorInformation
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:72,1
    - Dst: std::vector::data
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buffer_size % sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION) == 0)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: get_cachelinesize_from_GetLogicalProcessorInformation
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::data
    - GetLogicalProcessorInformation
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_GetLogicalProcessorInformation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: get_cachelinesize_from_GetLogicalProcessorInformation
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<int64_t>
    signature: std::optional<int64_t> get_cachelinesize_from_GetLogicalProcessorInformation()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_cachelinesize_from_sysconf
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:91,1
    - Dst: get_cachelinesize_from_getauxval
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:93,1
    - Dst: get_cachelinesize_from_sysctlbyname
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:95,1
    - Dst: get_cachelinesize_from_GetLogicalProcessorInformation
      Src: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
    functionUses: 0
    functionsReached:
    - get_cachelinesize_from_GetLogicalProcessorInformation
    - get_cachelinesize_from_sysctlbyname
    - get_cachelinesize_from_sysconf
    - get_cachelinesize_from_getauxval
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __get_cpuid
      Src: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp
    functionUses: 0
    functionsReached:
    - __get_cpuid
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: main
    functionSourceFile: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndiannessRuntime
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getHostEndiannessRuntime
    - ASSERT_EQ
    - getHostEndianness
    linkageType: ''
    returnType: void
    signature: void TEST(EndiannessTest, getHostEndiannessTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' p'
    argTypes:
    - ::std::ostream
    - intPair<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: '& operator<<(::std::ostream& os, const intPair<T>& p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const intPair<T>& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:93,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:94,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - darg1
    - darg2
    - ' arg1'
    - ' arg2'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: "operator()(const char* darg1, const char* darg2,\n                                        const
      T& arg1, const T& arg2)"
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult operator()(const char* darg1, const char*
      darg2,\n                                        const T& arg1, const T& arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractGetByteSwappedTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::GetParam
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:114,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:117,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:118,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:119,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:121,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: rawspeed_test::AbstractGetByteSwappedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - rawspeed_test::AbstractGetByteSwappedTest::GetParam
    - memcpy
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteSwapped<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getByteSwapped<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getByteSwappedT(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getBE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getBEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getBEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getLEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getLE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getLEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:153,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:155,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:160,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:162,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:168,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:170,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:175,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:177,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:197,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:199,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:204,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:206,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:228,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:230,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:235,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:237,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:243,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:245,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:250,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:252,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32LE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32BE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:271,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:273,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:278,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:280,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:302,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:304,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:309,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:311,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:330,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:332,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:337,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:339,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:358,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:360,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:365,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:367,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndiannessRuntime
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getHostEndiannessRuntime
    - ASSERT_EQ
    - getHostEndianness
    linkageType: ''
    returnType: void
    signature: void TEST(EndiannessTest, getHostEndiannessTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' p'
    argTypes:
    - ::std::ostream
    - intPair<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: '& operator<<(::std::ostream& os, const intPair<T>& p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const intPair<T>& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:93,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:94,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - darg1
    - darg2
    - ' arg1'
    - ' arg2'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: "operator()(const char* darg1, const char* darg2,\n                                        const
      T& arg1, const T& arg2)"
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult operator()(const char* darg1, const char*
      darg2,\n                                        const T& arg1, const T& arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractGetByteSwappedTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::GetParam
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:114,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:117,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:118,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:119,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:121,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: rawspeed_test::AbstractGetByteSwappedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - rawspeed_test::AbstractGetByteSwappedTest::GetParam
    - memcpy
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteSwapped<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getByteSwapped<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getByteSwappedT(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getBE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getBEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getBEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getLEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getLE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getLEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:153,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:155,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:160,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:162,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:168,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:170,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:175,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:177,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:197,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:199,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:204,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:206,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:228,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:230,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:235,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:237,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:243,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:245,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:250,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:252,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32LE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32BE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:271,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:273,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:278,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:280,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:302,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:304,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:309,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:311,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:330,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:332,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:337,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:339,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:358,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:360,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:365,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:367,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndiannessRuntime
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getHostEndiannessRuntime
    - ASSERT_EQ
    - getHostEndianness
    linkageType: ''
    returnType: void
    signature: void TEST(EndiannessTest, getHostEndiannessTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' p'
    argTypes:
    - ::std::ostream
    - intPair<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: '& operator<<(::std::ostream& os, const intPair<T>& p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const intPair<T>& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:93,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:94,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - darg1
    - darg2
    - ' arg1'
    - ' arg2'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: "operator()(const char* darg1, const char* darg2,\n                                        const
      T& arg1, const T& arg2)"
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult operator()(const char* darg1, const char*
      darg2,\n                                        const T& arg1, const T& arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractGetByteSwappedTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::GetParam
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:114,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:117,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:118,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:119,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:121,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: rawspeed_test::AbstractGetByteSwappedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - rawspeed_test::AbstractGetByteSwappedTest::GetParam
    - memcpy
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteSwapped<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getByteSwapped<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getByteSwappedT(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getBE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getBEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getBEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getLEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getLE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getLEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:153,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:155,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:160,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:162,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:168,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:170,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:175,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:177,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:197,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:199,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:204,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:206,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:228,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:230,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:235,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:237,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:243,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:245,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:250,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:252,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32LE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32BE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:271,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:273,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:278,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:280,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:302,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:304,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:309,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:311,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:330,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:332,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:337,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:339,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:358,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:360,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:365,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:367,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndiannessRuntime
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getHostEndiannessRuntime
    - ASSERT_EQ
    - getHostEndianness
    linkageType: ''
    returnType: void
    signature: void TEST(EndiannessTest, getHostEndiannessTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' p'
    argTypes:
    - ::std::ostream
    - intPair<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: '& operator<<(::std::ostream& os, const intPair<T>& p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const intPair<T>& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:93,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:94,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - darg1
    - darg2
    - ' arg1'
    - ' arg2'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: "operator()(const char* darg1, const char* darg2,\n                                        const
      T& arg1, const T& arg2)"
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult operator()(const char* darg1, const char*
      darg2,\n                                        const T& arg1, const T& arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractGetByteSwappedTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::GetParam
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:114,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:117,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:118,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:119,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:121,1
    - Dst: memcpy
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: rawspeed_test::AbstractGetByteSwappedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - rawspeed_test::AbstractGetByteSwappedTest::GetParam
    - memcpy
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteSwapped<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getByteSwapped<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getByteSwappedT(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getBE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getBEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getBEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLE<T2>
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed_test::AbstractGetByteSwappedTest::getLEt
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getLE<T2>
    linkageType: ''
    returnType: T2
    signature: T2 getLEt(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:153,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:154,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:155,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:160,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:161,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:162,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:168,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:169,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:170,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:175,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getU16LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:176,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:177,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    - Dst: getU16BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU16BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU16LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ushort16Test, getU16NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:197,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:198,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:199,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:204,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:205,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:206,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(short16Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:228,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:229,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:230,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:235,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:236,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:237,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getNOP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:243,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:244,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:245,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32BE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32LE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:250,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getU32LE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:251,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:252,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    - Dst: getU32BE
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getU32LE
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getU32BE
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint32Test, getU32NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:271,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:272,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:273,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:278,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:279,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:280,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(int32Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:302,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:303,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:304,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:309,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:310,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:311,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(uint64Test, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:330,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:331,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:332,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:337,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:338,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:339,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(floatTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    - Dst: getByteSwapped
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwapped
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    - Dst: getByteSwappedT
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_PRED_FORMAT2
    - getByteSwappedT
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, typedSwap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:358,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:359,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:360,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:365,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getLEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:366,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:367,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    - Dst: getBEt
      Src: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    functionUses: 0
    functionsReached:
    - getBEt
    - ASSERT_PRED_FORMAT2
    - getHostEndianness
    - getLEt
    linkageType: ''
    returnType: void
    signature: void TEST_P(doubleTest, getNOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRSE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawspeedException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCME
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CameraMetadataException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFIE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowFIE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FileIOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<IOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawDecoderException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowRPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<TiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ThrowFPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:107,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:112,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:117,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:118,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:119,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:122,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:124,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:127,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:139,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:140,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:141,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:143,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:145,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:146,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:149,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:151,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:152,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:155,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:157,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - std::unique_ptr::get
    - EXPECT_THROW
    - TypeParam::TypeParam
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Throw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:165,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:171,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:172,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:178,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:179,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:180,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:187,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - std::unique_ptr::get
    - TypeParam::TypeParam
    - TypeParam
    - ASSERT_THAT
    - what
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - EXPECT_THROW
    - rawspeed_test::MetaHelper
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:203,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - what
    - rawspeed_test::MetaHelper
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTestMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRSE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawspeedException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCME
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CameraMetadataException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFIE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowFIE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FileIOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<IOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawDecoderException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowRPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowTPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<TiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 2
    functionsReached:
    - ThrowFPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:107,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:112,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:117,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:118,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:119,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:122,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:124,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:127,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:139,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:140,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:141,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:143,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:145,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:146,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:149,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:151,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:152,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:155,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:157,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - std::unique_ptr::get
    - EXPECT_THROW
    - TypeParam::TypeParam
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Throw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:165,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:171,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:172,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:178,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:179,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:180,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:187,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - std::unique_ptr::get
    - TypeParam::TypeParam
    - TypeParam
    - ASSERT_THAT
    - what
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - EXPECT_THROW
    - rawspeed_test::MetaHelper
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:203,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - what
    - rawspeed_test::MetaHelper
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTestMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRSE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawspeedException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCME
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CameraMetadataException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFIE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowFIE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FileIOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<IOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawDecoderException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowRPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowTPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<TiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 4
    functionsReached:
    - ThrowFPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:107,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:112,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:117,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:118,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:119,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:122,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:124,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:127,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:139,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:140,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:141,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:143,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:145,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:146,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:149,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:151,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:152,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:155,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:157,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - std::unique_ptr::get
    - EXPECT_THROW
    - TypeParam::TypeParam
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Throw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:165,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:171,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:172,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:178,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:179,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:180,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:187,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - std::unique_ptr::get
    - TypeParam::TypeParam
    - TypeParam
    - ASSERT_THAT
    - what
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - EXPECT_THROW
    - rawspeed_test::MetaHelper
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:203,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - what
    - rawspeed_test::MetaHelper
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTestMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRSE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawspeedException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCME
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CameraMetadataException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<CiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFIE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowFIE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FileIOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<IOException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawDecoderException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowRPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<RawParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowTPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<TiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowFPE
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed_test::MetaHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 6
    functionsReached:
    - ThrowFPE
    linkageType: ''
    returnType: void
    signature: void * MetaHelper<FiffParserException>(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:107,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:112,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:117,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:118,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:119,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:122,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:124,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:127,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - TypeParam::TypeParam
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:139,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:140,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:141,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:143,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:145,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:146,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:149,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:151,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:152,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:155,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:157,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - std::unique_ptr::get
    - EXPECT_THROW
    - TypeParam::TypeParam
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, Throw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:165,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:167,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:171,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:172,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:174,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:178,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:179,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:180,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:182,1
    - Dst: TypeParam::TypeParam
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:187,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - std::unique_ptr::get
    - TypeParam::TypeParam
    - TypeParam
    - ASSERT_THAT
    - what
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:195,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:196,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:197,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - EXPECT_THROW
    - rawspeed_test::MetaHelper
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::MetaHelper
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:203,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: what
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    - Dst: testing::HasSubstr
      Src: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: rawspeed_test::TYPED_TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
    functionUses: 0
    functionsReached:
    - testing::HasSubstr
    - what
    - rawspeed_test::MetaHelper
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(ExceptionsTest, ThrowHelperTestMessage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:46,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:48,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:51,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:53,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:55,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTestDumb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed_test::CameraSensorInfoTestDumb::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' csi'
    argTypes:
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& csi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - CameraSensorInfo
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& a, const CameraSensorInfo&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:94,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:99,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:110,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:114,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:122,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:128,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:129,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:131,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:134,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:137,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:140,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:153,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:154,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:158,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:160,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:162,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:163,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:169,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:172,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:176,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:180,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:186,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:194,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:195,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:197,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:202,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:205,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:210,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:220,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:227,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' obj'
    argTypes:
    - std::ostream
    - IsoExpectationsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: "& operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:272,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:274,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:277,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:279,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:281,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CameraSensorInfoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:302,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::isDefault
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, IsDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:314,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - CameraSensorInfo::isIsoWithin
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, isIsoWithin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:46,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:48,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:51,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:53,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:55,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTestDumb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed_test::CameraSensorInfoTestDumb::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' csi'
    argTypes:
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& csi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - CameraSensorInfo
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& a, const CameraSensorInfo&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:94,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:99,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:110,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:114,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:122,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:128,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:129,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:131,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:134,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:137,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:140,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:153,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:154,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:158,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:160,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:162,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:163,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:169,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:172,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:176,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:180,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:186,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:194,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:195,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:197,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:202,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:205,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:210,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:220,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:227,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' obj'
    argTypes:
    - std::ostream
    - IsoExpectationsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: "& operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:272,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:274,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:277,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:279,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:281,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CameraSensorInfoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:302,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::isDefault
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, IsDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:314,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - CameraSensorInfo::isIsoWithin
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, isIsoWithin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:46,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:48,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:51,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:53,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:55,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTestDumb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed_test::CameraSensorInfoTestDumb::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' csi'
    argTypes:
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& csi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - CameraSensorInfo
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& a, const CameraSensorInfo&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:94,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:99,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:110,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:114,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:122,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:128,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:129,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:131,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:134,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:137,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:140,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:153,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:154,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:158,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:160,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:162,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:163,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:169,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:172,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:176,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:180,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:186,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:194,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:195,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:197,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:202,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:205,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:210,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:220,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:227,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' obj'
    argTypes:
    - std::ostream
    - IsoExpectationsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: "& operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:272,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:274,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:277,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:279,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:281,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CameraSensorInfoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:302,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::isDefault
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, IsDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:314,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - CameraSensorInfo::isIsoWithin
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, isIsoWithin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:46,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:48,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:51,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:53,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:55,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTestDumb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:61,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed_test::CameraSensorInfoTestDumb::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' csi'
    argTypes:
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& csi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - CameraSensorInfo
    - CameraSensorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: rawspeed_test::CameraSensorInfoTestDumb::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const CameraSensorInfo& a, const CameraSensorInfo&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:94,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:99,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:110,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:114,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:122,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:128,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:129,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:131,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:134,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:137,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:140,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:153,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:154,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:158,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:160,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:162,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:163,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:169,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:172,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:176,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:180,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - CameraSensorInfo::CameraSensorInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:186,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:194,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:195,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:197,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:202,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:205,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:210,1
    - Dst: CameraSensorInfo::CameraSensorInfo
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::CameraSensorInfo
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:220,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:227,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTestDumb, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' obj'
    argTypes:
    - std::ostream
    - IsoExpectationsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: "& operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& os,\n                                  const
      IsoExpectationsT& obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:272,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:274,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:277,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:279,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:281,1
    - Dst: std::rand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::rand
    linkageType: ''
    returnType: void
    signature: void CameraSensorInfoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CameraSensorInfoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:302,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:304,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    - Dst: CameraSensorInfo::isDefault
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - CameraSensorInfo::isDefault
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, IsDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:314,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:316,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    - Dst: CameraSensorInfo::isIsoWithin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_NO_THROW
    - CameraSensorInfo::isIsoWithin
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(CameraSensorInfoTest, isIsoWithin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:327,1
    - Dst: std::generate
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:330,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:330,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:331,1
    - Dst: std::srand
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:333,1
    - Dst: testing::InitGoogleMock
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:335,1
    - Dst: RUN_ALL_TESTS
      Src: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 337
    functionName: main
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    functionUses: 0
    functionsReached:
    - std::srand
    - std::generate
    - RUN_ALL_TESTS
    - end
    - begin
    - testing::InitGoogleMock
    - push_back
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed_test::BlackAreaTest::BlackAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rawspeed_test::BlackAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BlackArea
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a, const BlackArea& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:71,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:79,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:84,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:91,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:94,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:95,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:98,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:100,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:101,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:102,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:106,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:108,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:109,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:110,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:113,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:115,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:117,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:127,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:133,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:140,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:142,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:143,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:148,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:150,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:155,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:165,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:172,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:175,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:177,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:178,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:182,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:183,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:186,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:188,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:192,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:193,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:196,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:198,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:203,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed_test::BlackAreaTest::BlackAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rawspeed_test::BlackAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BlackArea
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a, const BlackArea& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:71,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:79,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:84,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:91,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:94,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:95,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:98,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:100,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:101,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:102,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:106,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:108,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:109,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:110,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:113,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:115,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:117,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:127,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:133,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:140,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:142,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:143,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:148,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:150,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:155,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:165,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:172,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:175,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:177,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:178,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:182,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:183,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:186,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:188,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:192,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:193,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:196,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:198,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:203,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed_test::BlackAreaTest::BlackAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rawspeed_test::BlackAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BlackArea
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a, const BlackArea& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:71,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:79,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:84,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:91,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:94,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:95,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:98,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:100,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:101,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:102,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:106,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:108,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:109,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:110,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:113,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:115,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:117,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:127,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:133,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:140,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:142,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:143,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:148,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:150,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:155,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:165,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:172,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:175,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:177,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:178,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:182,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:183,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:186,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:188,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:192,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:193,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:196,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:198,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:203,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed_test::BlackAreaTest::BlackAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:39,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:40,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rawspeed_test::BlackAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BlackArea
    - BlackArea
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed_test::BlackAreaTest::checkHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void checkHelper(const BlackArea& a, const BlackArea& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:71,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:79,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:84,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:91,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:94,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:95,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:98,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:100,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:101,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:102,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:106,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:108,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:109,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:110,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:113,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:115,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:117,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:127,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - checkHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentConstructorGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:133,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:140,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:142,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:143,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:148,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:150,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:155,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, Assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:165,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:171,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:172,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:175,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:177,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:178,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:182,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:183,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:186,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:188,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:192,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:193,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:196,1
    - Dst: BlackArea::BlackArea
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:198,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:203,1
    - Dst: checkHelper
      Src: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
    functionUses: 0
    functionsReached:
    - BlackArea::BlackArea
    - checkHelper
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(BlackAreaTest, AssignmentGetters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - Hints::contains
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - ASSERT_FALSE
    - Hints::get
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsGetDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:57,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:73,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:87,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAdd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:97,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsUInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:117,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:137,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST(BoolHintTest, HintsBoolTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BoolHintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:155,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoolHintTest, HintsBool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - Hints::contains
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - ASSERT_FALSE
    - Hints::get
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsGetDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:57,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:73,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:87,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAdd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:97,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsUInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:117,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:137,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST(BoolHintTest, HintsBoolTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BoolHintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:155,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoolHintTest, HintsBool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - Hints::contains
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - ASSERT_FALSE
    - Hints::get
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsGetDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:57,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:73,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:87,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAdd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:97,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsUInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:117,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:137,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST(BoolHintTest, HintsBoolTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BoolHintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:155,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoolHintTest, HintsBool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - Hints::contains
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:41,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:42,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:43,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:45,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:46,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:47,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - ASSERT_FALSE
    - Hints::get
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsGetDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:55,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:57,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:58,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:61,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:72,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:73,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:74,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:77,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - Hints::contains
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAssignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:86,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:87,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    - Dst: string
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    - string
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsAdd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:96,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:97,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:98,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:106,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:108,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsUInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:116,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:117,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:126,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:128,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_EQ
    - Hints::contains
    - Hints::get
    - Hints::add
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CameraTest, HintsDouble)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:136,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:137,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:138,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST(BoolHintTest, HintsBoolTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BoolHintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:154,1
    - Dst: Hints::add
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:155,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: Hints::contains
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:156,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    - Dst: Hints::get
      Src: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Hints::contains
    - Hints::add
    - Hints::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoolHintTest, HintsBool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CompileTimeCanInherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:47,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    - Dst: CameraMetaData::CameraMetaData
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData::CameraMetaData
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CamerasXml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:53,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:54,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:57,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:58,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:59,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:61,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:62,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:67,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:68,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:71,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:73,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:77,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:79,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:80,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CameraMetaData::getCamera
    - ASSERT_NE
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, PrefixSearch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CompileTimeCanInherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:47,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    - Dst: CameraMetaData::CameraMetaData
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData::CameraMetaData
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CamerasXml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:53,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:54,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:57,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:58,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:59,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:61,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:62,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:67,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:68,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:71,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:73,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:77,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:79,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:80,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CameraMetaData::getCamera
    - ASSERT_NE
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, PrefixSearch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CompileTimeCanInherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:47,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    - Dst: CameraMetaData::CameraMetaData
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData::CameraMetaData
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CamerasXml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:53,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:54,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:57,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:58,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:59,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:61,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:62,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:67,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:68,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:71,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:73,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:77,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:79,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:80,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CameraMetaData::getCamera
    - ASSERT_NE
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, PrefixSearch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CompileTimeCanInherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:45,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:47,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    - Dst: CameraMetaData::CameraMetaData
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData::CameraMetaData
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, CamerasXml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:53,1
    - Dst: c_str
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:54,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:57,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:58,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:59,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:61,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:62,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:64,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:67,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:68,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:71,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:73,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:77,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:79,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:80,1
    - Dst: CameraMetaData::getCamera
      Src: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CameraMetaData::getCamera
    - ASSERT_NE
    - c_str
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(CameraMetaDataTest, PrefixSearch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - ::std::ostream
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: '& operator<<(::std::ostream& os, const CFAColor c)'
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ColorFilterArray::colorToString
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const CFAColor c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - ::std::ostream
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: '& operator<<(::std::ostream& os, const CFAColor c)'
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ColorFilterArray::colorToString
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const CFAColor c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getSize
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:59,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:65,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:66,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ColorFilterArray::getSize
    - ASSERT_EQ
    - area
    - iPoint2D
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, SetSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:75,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - iPoint2D
    - ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, DISABLED_SetTooBigSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:86,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:87,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:91,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:96,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:97,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:107,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - iPoint2D
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftRight
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesEmptyCFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getDcrawFilter
    - ColorFilterArray::setColorAt
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesOutOfBounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rawspeed_test::ColorFilterArrayTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray*::setCFA
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::setHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray*::setCFA
    - std::get<3>
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void setHelper(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: rawspeed_test::check
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::get<3>
    - ColorFilterArray*::getColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void check(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:176,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:178,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:184,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:186,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:187,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:190,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:193,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:195,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:196,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:205,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - ColorFilterArray::setColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    - ASSERT_NO_THROW
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, SetColorAt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:216,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:218,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_NO_THROW
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:224,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:226,1
    - Dst: ColorFilterArray::asString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:227,1
    - Dst: ASSERT_GT
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: ASSERT_LE
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::setHelper
    - ASSERT_GT
    - string::size
    - ASSERT_NO_THROW
    - ASSERT_LE
    - ColorFilterArray::asString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayShiftTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:240,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:243,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: rawspeed_test::ColorFilterArrayShiftTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::make_tuple
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shiftDcrawFilter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:286,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:287,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:291,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:301,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:306,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:311,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:312,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 315
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - ColorFilterArray::setColorAt
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shift3x3Filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:318,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:320,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:321,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:324,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:325,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:326,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:331,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:332,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:333,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    - rawspeed_test::setHelper
    - ColorFilterArray::shiftDown
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayShiftTest, shiftEqualityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getSize
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:59,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:65,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:66,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ColorFilterArray::getSize
    - ASSERT_EQ
    - area
    - iPoint2D
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, SetSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:75,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - iPoint2D
    - ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, DISABLED_SetTooBigSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:86,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:87,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:91,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:96,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:97,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:107,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - iPoint2D
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftRight
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesEmptyCFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getDcrawFilter
    - ColorFilterArray::setColorAt
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesOutOfBounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rawspeed_test::ColorFilterArrayTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray*::setCFA
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::setHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 5
    functionsReached:
    - ColorFilterArray*::setCFA
    - std::get<3>
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void setHelper(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: rawspeed_test::check
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 3
    functionsReached:
    - ASSERT_EQ
    - std::get<3>
    - ColorFilterArray*::getColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void check(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:176,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:178,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:184,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:186,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:187,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:190,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:193,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:195,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:196,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:205,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - ColorFilterArray::setColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    - ASSERT_NO_THROW
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, SetColorAt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:216,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:218,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_NO_THROW
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:224,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:226,1
    - Dst: ColorFilterArray::asString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:227,1
    - Dst: ASSERT_GT
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: ASSERT_LE
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::setHelper
    - ASSERT_GT
    - string::size
    - ASSERT_NO_THROW
    - ASSERT_LE
    - ColorFilterArray::asString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayShiftTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:240,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:243,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: rawspeed_test::ColorFilterArrayShiftTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::make_tuple
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shiftDcrawFilter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:286,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:287,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:291,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:301,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:306,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:311,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:312,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 315
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - ColorFilterArray::setColorAt
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shift3x3Filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:318,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:320,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:321,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:324,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:325,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:326,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:331,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:332,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:333,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    - rawspeed_test::setHelper
    - ColorFilterArray::shiftDown
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayShiftTest, shiftEqualityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getSize
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:59,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:65,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:66,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ColorFilterArray::getSize
    - ASSERT_EQ
    - area
    - iPoint2D
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, SetSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:75,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - iPoint2D
    - ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, DISABLED_SetTooBigSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:86,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:87,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:91,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:96,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:97,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:107,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - iPoint2D
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftRight
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesEmptyCFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getDcrawFilter
    - ColorFilterArray::setColorAt
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesOutOfBounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rawspeed_test::ColorFilterArrayTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray*::setCFA
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::setHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 10
    functionsReached:
    - ColorFilterArray*::setCFA
    - std::get<3>
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void setHelper(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: rawspeed_test::check
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 6
    functionsReached:
    - ASSERT_EQ
    - std::get<3>
    - ColorFilterArray*::getColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void check(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:176,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:178,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:184,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:186,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:187,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:190,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:193,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:195,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:196,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:205,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - ColorFilterArray::setColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    - ASSERT_NO_THROW
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, SetColorAt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:216,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:218,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_NO_THROW
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:224,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:226,1
    - Dst: ColorFilterArray::asString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:227,1
    - Dst: ASSERT_GT
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: ASSERT_LE
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::setHelper
    - ASSERT_GT
    - string::size
    - ASSERT_NO_THROW
    - ASSERT_LE
    - ColorFilterArray::asString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayShiftTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:240,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:243,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: rawspeed_test::ColorFilterArrayShiftTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::make_tuple
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shiftDcrawFilter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:286,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:287,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:291,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:301,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:306,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:311,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:312,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 315
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - ColorFilterArray::setColorAt
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shift3x3Filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:318,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:320,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:321,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:324,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:325,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:326,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:331,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:332,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:333,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    - rawspeed_test::setHelper
    - ColorFilterArray::shiftDown
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayShiftTest, shiftEqualityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:52,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getSize
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:59,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:62,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:65,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:66,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:67,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: ColorFilterArray::getSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ColorFilterArray::getSize
    - ASSERT_EQ
    - area
    - iPoint2D
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, SetSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:75,1
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - iPoint2D
    - ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, DISABLED_SetTooBigSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:83,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:86,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:87,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:88,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:91,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:93,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:96,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:97,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:98,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:103,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:107,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - iPoint2D
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:115,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:117,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftRight
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesEmptyCFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:125,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:127,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:129,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:131,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:133,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:135,1
    - Dst: ASSERT_ANY_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_ANY_THROW
    - ColorFilterArray::getDcrawFilter
    - ColorFilterArray::setColorAt
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, HandlesOutOfBounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rawspeed_test::ColorFilterArrayTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray*::setCFA
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::setHelper
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 15
    functionsReached:
    - ColorFilterArray*::setCFA
    - std::get<3>
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void setHelper(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:169,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:170,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:171,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: ColorFilterArray*::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cfa
    - param
    argTypes:
    - ColorFilterArray*
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: rawspeed_test::check
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 9
    functionsReached:
    - ASSERT_EQ
    - std::get<3>
    - ColorFilterArray*::getColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void check(ColorFilterArray* cfa, Bayer2x2 param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:176,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:178,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:184,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:186,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:187,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:190,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:193,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:195,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:196,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - rawspeed_test::check
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:205,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:207,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:208,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:209,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:210,1
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - ColorFilterArray::setColorAt
    - std::get<0>
    - std::get<1>
    - std::get<2>
    - ASSERT_NO_THROW
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, SetColorAt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:216,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:218,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_NO_THROW
    - rawspeed_test::setHelper
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, ToDcraw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:224,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:226,1
    - Dst: ColorFilterArray::asString
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:227,1
    - Dst: ASSERT_GT
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:229,1
    - Dst: ASSERT_LE
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    - Dst: string::size
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::setHelper
    - ASSERT_GT
    - string::size
    - ASSERT_NO_THROW
    - ASSERT_LE
    - ColorFilterArray::asString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayTest, AsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArrayShiftTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:240,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:241,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:242,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:243,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: rawspeed_test::ColorFilterArrayShiftTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::make_tuple
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:268,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:269,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:270,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:272,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:273,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:275,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:276,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:277,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:279,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shiftDcrawFilter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorFilterArray::setSize
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:286,1
    - Dst: ColorFilterArray::setColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:287,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:291,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:292,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:297,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:301,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:302,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:306,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:307,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:311,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:312,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    - Dst: ColorFilterArray::getColorAt
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 315
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::setSize
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - ColorFilterArray::setColorAt
    - ColorFilterArray::getColorAt
    - ColorFilterArray::shiftDown
    linkageType: ''
    returnType: void
    signature: void TEST(ColorFilterArrayTestBasic, shift3x3Filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:318,1
    - Dst: rawspeed_test::setHelper
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:320,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:321,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:324,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:325,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:326,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:327,1
    - Dst: ColorFilterArray::shiftRight
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:331,1
    - Dst: ColorFilterArray::shiftDown
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:332,1
    - Dst: ColorFilterArray::getDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:333,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    - Dst: rawspeed::ColorFilterArray::shiftDcrawFilter
      Src: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
    functionUses: 0
    functionsReached:
    - ColorFilterArray::getDcrawFilter
    - ASSERT_EQ
    - ColorFilterArray::shiftRight
    - rawspeed::ColorFilterArray::shiftDcrawFilter
    - rawspeed_test::setHelper
    - ColorFilterArray::shiftDown
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(ColorFilterArrayShiftTest, shiftEqualityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:34,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    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: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ParseChecksumFileContent
    - ASSERT_TRUE
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: EXPECT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - gen
    - ParseChecksumFileContent
    - EXPECT_NO_THROW
    - std::string
    - EXPECT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, ShortLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:48,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:50,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:58,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - std::string
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:68,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:74,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - auto::front
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, TheTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:34,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    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: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ParseChecksumFileContent
    - ASSERT_TRUE
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: EXPECT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - gen
    - ParseChecksumFileContent
    - EXPECT_NO_THROW
    - std::string
    - EXPECT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, ShortLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:48,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:50,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:58,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - std::string
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:68,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:74,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - auto::front
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, TheTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:34,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    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: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ParseChecksumFileContent
    - ASSERT_TRUE
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: EXPECT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - gen
    - ParseChecksumFileContent
    - EXPECT_NO_THROW
    - std::string
    - EXPECT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, ShortLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:48,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:50,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:58,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - std::string
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:68,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:74,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - auto::front
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, TheTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:34,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:35,1
    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: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ParseChecksumFileContent
    - ASSERT_TRUE
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:40,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:42,1
    - Dst: EXPECT_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:43,1
    - Dst: EXPECT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - gen
    - ParseChecksumFileContent
    - EXPECT_NO_THROW
    - std::string
    - EXPECT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, ShortLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:48,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:50,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:51,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:52,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:55,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:56,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:58,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: std::string
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:59,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:60,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - std::string
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, Lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:68,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:69,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:70,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:72,1
    - Dst: ParseChecksumFileContent
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:74,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: auto::empty
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:75,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:76,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    - Dst: auto::front
      Src: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseChecksumFileContent
    - auto::empty
    - ASSERT_FALSE
    - auto::front
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ParseChecksumFileContentTest, TheTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:35,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:38,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:40,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:42,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:45,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::Cpuid::SSE2
    - exit
    - ::testing::ExitedWithCode
    - ASSERT_FALSE
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(CpuidDeathTest, SSE2Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:35,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:38,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:40,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:42,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:45,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::Cpuid::SSE2
    - exit
    - ::testing::ExitedWithCode
    - ASSERT_FALSE
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(CpuidDeathTest, SSE2Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:35,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:38,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:40,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:42,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:45,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::Cpuid::SSE2
    - exit
    - ::testing::ExitedWithCode
    - ASSERT_FALSE
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(CpuidDeathTest, SSE2Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:35,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:37,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:38,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:40,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:42,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:44,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:45,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::Cpuid::SSE2
    - exit
    - ::testing::ExitedWithCode
    - ASSERT_FALSE
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(CpuidDeathTest, SSE2Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: '& operator<<(::std::ostream& os, const iPoint2D p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const iPoint2D p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: '& operator<<(::std::ostream& os, const iPoint2D p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const iPoint2D p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(SplineStaticTest, DefaultIsUshort16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:61,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:64,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:67,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:70,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:73,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:76,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:77,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - exit
    - ::testing::ExitedWithCode
    - Spline::calculateCurve
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, AtLeastTwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:83,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:86,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:89,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:98,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:101,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:104,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, YIsLimited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:113,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:116,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:119,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:122,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:125,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:128,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:131,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsStrictlyIncreasing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:141,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:155,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:160,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:171,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:174,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: rawspeed_test::IdentityTest::IdentityTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentityTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:188,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:191,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:192,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:193,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: rawspeed_test::IdentityTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:199,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:200,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:201,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:204,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:205,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: rawspeed_test::IdentityTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:237,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v0
    - v1
    - t
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: rawspeed_test::lerp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T lerp(T v0, T v1, T t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:253,1
    - Dst: std::generate_n
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:257,1
    - Dst: rawspeed_test::lerp
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:258,1
    - Dst: rawspeed::implicit_cast<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: std::lround
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - numCp
    argTypes:
    - int
    assertStmts:
    - condition: (ptsTotal == steps.size())
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: rawspeed_test::calculateSteps
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::lerp
    - std::vector::reserve
    - std::vector::size
    - assert
    - std::back_inserter
    - std::lround
    - rawspeed::implicit_cast<T>
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> calculateSteps(int numCp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:270,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed_test::calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(CalculateStepsEdgesTest, IdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsEdgesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:279,1
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: rawspeed_test::CalculateStepsEdgesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - calculateSteps
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, EdgesAreProper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CalculateStepsTest::CalculateStepsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:303,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:304,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:305,1
    - Dst: calculateSteps<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: rawspeed_test::CalculateStepsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - calculateSteps<T>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:336,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:337,1
    - Dst: ASSERT_GE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:340,1
    - Dst: ASSERT_LT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - ASSERT_LT
    - ASSERT_GE
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: rawspeed_test::ConstantTest::ConstantTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConstantTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:363,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:367,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (steps.size() == edges.size())
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: rawspeed_test::ConstantTest::calculateEdges
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateEdges()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:373,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:375,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:376,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:377,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: rawspeed_test::ConstantTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:383,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:385,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:386,1
    - Dst: rawspeed_test::ConstantTest::calculateEdges
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:388,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:393,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:394,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: rawspeed_test::ConstantTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - rawspeed_test::ConstantTest::calculateEdges
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:427,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: ~AbstractReferenceTest()
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::acos
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:450,1
    - Dst: std::sin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: rawspeed_test::SinReferenceTest::calculateRefVal
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - T
    - std::sin
    - std::acos
    linkageType: ''
    returnType: T
    signature: T calculateRefVal(int x) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: ~SinReferenceTest() override
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SinReferenceTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: rawspeed_test::ReferenceTest::ReferenceTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:469,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reference.size() == xPoints.size())
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: rawspeed_test::ReferenceTest::calculateReference
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - rawspeed_test::ReferenceTest::calculateRefVal
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateReference()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:479,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:481,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:482,1
    - Dst: rawspeed_test::ReferenceTest::calculateReference
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:484,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:487,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: rawspeed_test::ReferenceTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - rawspeed_test::ReferenceTest::calculateReference
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:494,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:495,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: rawspeed_test::ReferenceTest::check
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - back
    - rawspeed_test::ReferenceTest::calculateRefVal
    - T
    - front
    linkageType: ''
    returnType: void
    signature: void check() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 529
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(Sin2PiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(SinPiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(SplineStaticTest, DefaultIsUshort16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:61,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:64,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:67,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:70,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:73,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:76,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:77,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - exit
    - ::testing::ExitedWithCode
    - Spline::calculateCurve
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, AtLeastTwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:83,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:86,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:89,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:98,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:101,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:104,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, YIsLimited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:113,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:116,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:119,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:122,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:125,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:128,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:131,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsStrictlyIncreasing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:141,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:155,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:160,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:171,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:174,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: rawspeed_test::IdentityTest::IdentityTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentityTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:188,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:191,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:192,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:193,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: rawspeed_test::IdentityTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:199,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:200,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:201,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:204,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:205,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: rawspeed_test::IdentityTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:237,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v0
    - v1
    - t
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: rawspeed_test::lerp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T lerp(T v0, T v1, T t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:253,1
    - Dst: std::generate_n
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:257,1
    - Dst: rawspeed_test::lerp
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:258,1
    - Dst: rawspeed::implicit_cast<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: std::lround
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - numCp
    argTypes:
    - int
    assertStmts:
    - condition: (ptsTotal == steps.size())
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: rawspeed_test::calculateSteps
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 1
    functionsReached:
    - rawspeed_test::lerp
    - std::vector::reserve
    - std::vector::size
    - assert
    - std::back_inserter
    - std::lround
    - rawspeed::implicit_cast<T>
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> calculateSteps(int numCp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:270,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed_test::calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(CalculateStepsEdgesTest, IdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsEdgesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:279,1
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: rawspeed_test::CalculateStepsEdgesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - calculateSteps
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, EdgesAreProper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CalculateStepsTest::CalculateStepsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:303,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:304,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:305,1
    - Dst: calculateSteps<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: rawspeed_test::CalculateStepsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - calculateSteps<T>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:336,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:337,1
    - Dst: ASSERT_GE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:340,1
    - Dst: ASSERT_LT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - ASSERT_LT
    - ASSERT_GE
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: rawspeed_test::ConstantTest::ConstantTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConstantTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:363,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:367,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (steps.size() == edges.size())
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: rawspeed_test::ConstantTest::calculateEdges
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 1
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateEdges()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:373,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:375,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:376,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:377,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: rawspeed_test::ConstantTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:383,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:385,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:386,1
    - Dst: rawspeed_test::ConstantTest::calculateEdges
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:388,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:393,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:394,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: rawspeed_test::ConstantTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - rawspeed_test::ConstantTest::calculateEdges
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:427,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: ~AbstractReferenceTest()
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::acos
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:450,1
    - Dst: std::sin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: rawspeed_test::SinReferenceTest::calculateRefVal
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - T
    - std::sin
    - std::acos
    linkageType: ''
    returnType: T
    signature: T calculateRefVal(int x) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: ~SinReferenceTest() override
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SinReferenceTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: rawspeed_test::ReferenceTest::ReferenceTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:469,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reference.size() == xPoints.size())
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: rawspeed_test::ReferenceTest::calculateReference
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 1
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - rawspeed_test::ReferenceTest::calculateRefVal
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateReference()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:479,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:481,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:482,1
    - Dst: rawspeed_test::ReferenceTest::calculateReference
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:484,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:487,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: rawspeed_test::ReferenceTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - rawspeed_test::ReferenceTest::calculateReference
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:494,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:495,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: rawspeed_test::ReferenceTest::check
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - back
    - rawspeed_test::ReferenceTest::calculateRefVal
    - T
    - front
    linkageType: ''
    returnType: void
    signature: void check() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 529
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(Sin2PiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(SinPiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(SplineStaticTest, DefaultIsUshort16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:61,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:64,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:67,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:70,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:73,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:76,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:77,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - exit
    - ::testing::ExitedWithCode
    - Spline::calculateCurve
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, AtLeastTwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:83,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:86,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:89,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:98,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:101,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:104,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, YIsLimited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:113,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:116,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:119,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:122,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:125,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:128,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:131,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsStrictlyIncreasing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:141,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:155,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:160,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:171,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:174,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: rawspeed_test::IdentityTest::IdentityTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentityTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:188,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:191,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:192,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:193,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: rawspeed_test::IdentityTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:199,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:200,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:201,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:204,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:205,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: rawspeed_test::IdentityTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:237,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v0
    - v1
    - t
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: rawspeed_test::lerp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T lerp(T v0, T v1, T t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:253,1
    - Dst: std::generate_n
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:257,1
    - Dst: rawspeed_test::lerp
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:258,1
    - Dst: rawspeed::implicit_cast<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: std::lround
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - numCp
    argTypes:
    - int
    assertStmts:
    - condition: (ptsTotal == steps.size())
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: rawspeed_test::calculateSteps
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 2
    functionsReached:
    - rawspeed_test::lerp
    - std::vector::reserve
    - std::vector::size
    - assert
    - std::back_inserter
    - std::lround
    - rawspeed::implicit_cast<T>
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> calculateSteps(int numCp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:270,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed_test::calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(CalculateStepsEdgesTest, IdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsEdgesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:279,1
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: rawspeed_test::CalculateStepsEdgesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - calculateSteps
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, EdgesAreProper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CalculateStepsTest::CalculateStepsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:303,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:304,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:305,1
    - Dst: calculateSteps<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: rawspeed_test::CalculateStepsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - calculateSteps<T>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:336,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:337,1
    - Dst: ASSERT_GE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:340,1
    - Dst: ASSERT_LT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - ASSERT_LT
    - ASSERT_GE
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: rawspeed_test::ConstantTest::ConstantTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConstantTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:363,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:367,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (steps.size() == edges.size())
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: rawspeed_test::ConstantTest::calculateEdges
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 2
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateEdges()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:373,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:375,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:376,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:377,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: rawspeed_test::ConstantTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:383,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:385,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:386,1
    - Dst: rawspeed_test::ConstantTest::calculateEdges
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:388,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:393,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:394,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: rawspeed_test::ConstantTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - rawspeed_test::ConstantTest::calculateEdges
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:427,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: ~AbstractReferenceTest()
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::acos
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:450,1
    - Dst: std::sin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: rawspeed_test::SinReferenceTest::calculateRefVal
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - T
    - std::sin
    - std::acos
    linkageType: ''
    returnType: T
    signature: T calculateRefVal(int x) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: ~SinReferenceTest() override
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SinReferenceTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: rawspeed_test::ReferenceTest::ReferenceTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:469,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reference.size() == xPoints.size())
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: rawspeed_test::ReferenceTest::calculateReference
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 2
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - rawspeed_test::ReferenceTest::calculateRefVal
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateReference()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:479,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:481,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:482,1
    - Dst: rawspeed_test::ReferenceTest::calculateReference
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:484,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:487,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: rawspeed_test::ReferenceTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - rawspeed_test::ReferenceTest::calculateReference
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:494,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:495,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: rawspeed_test::ReferenceTest::check
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - back
    - rawspeed_test::ReferenceTest::calculateRefVal
    - T
    - front
    linkageType: ''
    returnType: void
    signature: void check() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 529
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(Sin2PiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(SinPiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TEST(SplineStaticTest, DefaultIsUshort16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:61,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:64,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:67,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:70,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:73,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:76,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:77,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - exit
    - ::testing::ExitedWithCode
    - Spline::calculateCurve
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, AtLeastTwoPoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:83,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:86,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:89,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsFullRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:98,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:101,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:104,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, YIsLimited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:113,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:116,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:119,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:122,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:125,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:128,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:131,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - Spline::calculateCurve
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, XIsStrictlyIncreasing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:141,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:155,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:160,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:171,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:174,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ::testing::ExitedWithCode
    - exit
    - Spline::calculateCurve
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(SplineDeathTest, ClampUshort16Max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: rawspeed_test::IdentityTest::IdentityTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentityTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:187,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:188,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:191,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:192,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:193,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: rawspeed_test::IdentityTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:199,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:200,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:201,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:203,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:204,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:205,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:207,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: rawspeed_test::IdentityTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:227,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:236,1
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:237,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, ValuesAreLinearlyInterpolated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleIdentityTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v0
    - v1
    - t
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: rawspeed_test::lerp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T lerp(T v0, T v1, T t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:253,1
    - Dst: std::generate_n
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:255,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:257,1
    - Dst: rawspeed_test::lerp
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:258,1
    - Dst: rawspeed::implicit_cast<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: std::lround
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:262,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - numCp
    argTypes:
    - int
    assertStmts:
    - condition: (ptsTotal == steps.size())
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: rawspeed_test::calculateSteps
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 3
    functionsReached:
    - rawspeed_test::lerp
    - std::vector::reserve
    - std::vector::size
    - assert
    - std::back_inserter
    - std::lround
    - rawspeed::implicit_cast<T>
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> calculateSteps(int numCp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:270,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:271,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed_test::calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(CalculateStepsEdgesTest, IdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsEdgesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:279,1
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: rawspeed_test::CalculateStepsEdgesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - calculateSteps
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:292,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - back
    - ASSERT_EQ
    - front
    linkageType: ''
    returnType: void
    signature: void TEST_P(CalculateStepsEdgesTest, EdgesAreProper)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CalculateStepsTest::CalculateStepsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CalculateStepsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:303,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:304,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:305,1
    - Dst: calculateSteps<T>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: rawspeed_test::CalculateStepsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - calculateSteps<T>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:332,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:336,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:337,1
    - Dst: ASSERT_GE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:340,1
    - Dst: ASSERT_LT
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - ASSERT_LT
    - ASSERT_GE
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:349,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerCalculateStepsTest, GotExpectedOutput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: rawspeed_test::ConstantTest::ConstantTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConstantTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:363,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:364,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:367,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (steps.size() == edges.size())
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: rawspeed_test::ConstantTest::calculateEdges
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 3
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateEdges()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:373,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:375,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:376,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:377,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: rawspeed_test::ConstantTest::CheckSegments
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - size
    linkageType: ''
    returnType: void
    signature: void CheckSegments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:383,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:385,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:386,1
    - Dst: rawspeed_test::ConstantTest::calculateEdges
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:388,1
    - Dst: std::begin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: std::end
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:392,1
    - Dst: Spline::getSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:393,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:394,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:396,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: rawspeed_test::ConstantTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - std::end
    - Spline::getSegments
    - empty
    - ASSERT_EQ
    - size
    - rawspeed_test::ConstantTest::calculateEdges
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - std::begin
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntegerConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DOUBLE_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:427,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DOUBLE_EQ
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, AllValuesAreEqual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckSegments
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - CheckSegments
    linkageType: ''
    returnType: void
    signature: void TEST_P(DoubleConstantTest, SegmentCoeffients)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: ~AbstractReferenceTest()
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::acos
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:449,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:450,1
    - Dst: std::sin
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: rawspeed_test::SinReferenceTest::calculateRefVal
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - T
    - std::sin
    - std::acos
    linkageType: ''
    returnType: T
    signature: T calculateRefVal(int x) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: ~SinReferenceTest() override
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SinReferenceTest() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: rawspeed_test::ReferenceTest::ReferenceTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReferenceTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculateSteps
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:469,1
    - Dst: reserve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:471,1
    - Dst: emplace_back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:473,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reference.size() == xPoints.size())
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: rawspeed_test::ReferenceTest::calculateReference
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 3
    functionsReached:
    - reserve
    - size
    - emplace_back
    - assert
    - calculateSteps
    - rawspeed_test::ReferenceTest::calculateRefVal
    - auto::size
    linkageType: ''
    returnType: void
    signature: void calculateReference()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:479,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:481,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:482,1
    - Dst: rawspeed_test::ReferenceTest::calculateReference
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:484,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:487,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:488,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: rawspeed_test::ReferenceTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ASSERT_EQ
    - size
    - std::get<0>
    - std::get<1>
    - GetParam
    - ASSERT_FALSE
    - rawspeed_test::ReferenceTest::calculateReference
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: back
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:493,1
    - Dst: rawspeed_test::ReferenceTest::calculateRefVal
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:494,1
    - Dst: T
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:495,1
    - Dst: ASSERT_NEAR
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: rawspeed_test::ReferenceTest::check
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NEAR
    - back
    - rawspeed_test::ReferenceTest::calculateRefVal
    - T
    - front
    linkageType: ''
    returnType: void
    signature: void check() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 529
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(Sin2PiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::check
      Src: /src/librawspeed/test/librawspeed/common/SplineTest.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::check
    linkageType: ''
    returnType: void
    signature: void TEST_P(SinPiRefTest, NearlyMatchesReference)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed_test::RoundDownTest::RoundDownTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundDownTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed_test::RoundDownTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    - Dst: roundDown
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundDown
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundDownTest, RoundDownTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed_test::RoundUpTest::RoundUpTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundUpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rawspeed_test::RoundUpTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundUp
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundUpTest, RoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roundUpDivisionSafeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: rawspeed_test::roundUpDivisionSafeTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - roundUpDivisionSafe
    linkageType: ''
    returnType: void
    signature: void TEST_P(roundUpDivisionSafeTest, roundUpDivisionSafeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: rawspeed_test::IsAlignedTest::IsAlignedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsAlignedTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::IsAlignedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: isAligned
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - roundUp
    - isAligned
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAlignedTest, IsAlignedAfterRoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::IsInTest::IsInTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsInTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: rawspeed_test::IsInTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    - Dst: isIn
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    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: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - isIn
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsInTest, IsInTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TrimSpacesTest::TrimSpacesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrimSpacesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: rawspeed_test::TrimSpacesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    - Dst: trimSpaces
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - trimSpaces
    linkageType: ''
    returnType: void
    signature: void TEST_P(TrimSpacesTest, TrimSpacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: rawspeed_test::SplitStringTest::SplitStringTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SplitStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: rawspeed_test::SplitStringTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitString
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - std::equal
    - ASSERT_EQ
    - auto::end
    - size
    - auto::begin
    - begin
    - splitString
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(SplitStringTest, SplitStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:273,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:275,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:277,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<int>
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(MakeUniqueTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CopyPixelsTest::CopyPixelsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CopyPixelsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: min
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dstPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    - condition: (srcPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CopyPixelsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - numeric_limits<uint8_t>::max
    - min
    - std::get<3>
    - fill
    - end
    - begin
    - GetParam
    - std::get<1>
    - std::get<0>
    - assert
    - std::get<2>
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyPixels
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: rawspeed_test::CopyPixelsTest::copy
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const std::byte*>
    - copyPixels
    - reinterpret_cast<std::byte*>
    linkageType: ''
    returnType: void
    signature: void copy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:310,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: rawspeed_test::CopyPixelsTest::compare
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void compare()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:331,1
    - Dst: compare
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - copy
    - compare
    linkageType: ''
    returnType: void
    signature: void TEST_P(CopyPixelsTest, CopyPixelsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed_test::RoundDownTest::RoundDownTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundDownTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed_test::RoundDownTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    - Dst: roundDown
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundDown
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundDownTest, RoundDownTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed_test::RoundUpTest::RoundUpTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundUpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rawspeed_test::RoundUpTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundUp
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundUpTest, RoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roundUpDivisionSafeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: rawspeed_test::roundUpDivisionSafeTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - roundUpDivisionSafe
    linkageType: ''
    returnType: void
    signature: void TEST_P(roundUpDivisionSafeTest, roundUpDivisionSafeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: rawspeed_test::IsAlignedTest::IsAlignedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsAlignedTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::IsAlignedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: isAligned
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - roundUp
    - isAligned
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAlignedTest, IsAlignedAfterRoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::IsInTest::IsInTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsInTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: rawspeed_test::IsInTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    - Dst: isIn
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    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: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - isIn
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsInTest, IsInTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TrimSpacesTest::TrimSpacesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrimSpacesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: rawspeed_test::TrimSpacesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    - Dst: trimSpaces
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - trimSpaces
    linkageType: ''
    returnType: void
    signature: void TEST_P(TrimSpacesTest, TrimSpacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: rawspeed_test::SplitStringTest::SplitStringTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SplitStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: rawspeed_test::SplitStringTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitString
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - std::equal
    - ASSERT_EQ
    - auto::end
    - size
    - auto::begin
    - begin
    - splitString
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(SplitStringTest, SplitStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:273,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:275,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:277,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<int>
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(MakeUniqueTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CopyPixelsTest::CopyPixelsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CopyPixelsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: min
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dstPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    - condition: (srcPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CopyPixelsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - numeric_limits<uint8_t>::max
    - min
    - std::get<3>
    - fill
    - end
    - begin
    - GetParam
    - std::get<1>
    - std::get<0>
    - assert
    - std::get<2>
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyPixels
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: rawspeed_test::CopyPixelsTest::copy
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const std::byte*>
    - copyPixels
    - reinterpret_cast<std::byte*>
    linkageType: ''
    returnType: void
    signature: void copy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:310,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: rawspeed_test::CopyPixelsTest::compare
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void compare()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:331,1
    - Dst: compare
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - copy
    - compare
    linkageType: ''
    returnType: void
    signature: void TEST_P(CopyPixelsTest, CopyPixelsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed_test::RoundDownTest::RoundDownTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundDownTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed_test::RoundDownTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    - Dst: roundDown
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundDown
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundDownTest, RoundDownTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed_test::RoundUpTest::RoundUpTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundUpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rawspeed_test::RoundUpTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundUp
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundUpTest, RoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roundUpDivisionSafeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: rawspeed_test::roundUpDivisionSafeTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - roundUpDivisionSafe
    linkageType: ''
    returnType: void
    signature: void TEST_P(roundUpDivisionSafeTest, roundUpDivisionSafeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: rawspeed_test::IsAlignedTest::IsAlignedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsAlignedTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::IsAlignedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: isAligned
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - roundUp
    - isAligned
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAlignedTest, IsAlignedAfterRoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::IsInTest::IsInTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsInTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: rawspeed_test::IsInTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    - Dst: isIn
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    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: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - isIn
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsInTest, IsInTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TrimSpacesTest::TrimSpacesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrimSpacesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: rawspeed_test::TrimSpacesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    - Dst: trimSpaces
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - trimSpaces
    linkageType: ''
    returnType: void
    signature: void TEST_P(TrimSpacesTest, TrimSpacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: rawspeed_test::SplitStringTest::SplitStringTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SplitStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: rawspeed_test::SplitStringTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitString
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - std::equal
    - ASSERT_EQ
    - auto::end
    - size
    - auto::begin
    - begin
    - splitString
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(SplitStringTest, SplitStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:273,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:275,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:277,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<int>
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(MakeUniqueTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CopyPixelsTest::CopyPixelsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CopyPixelsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: min
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dstPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    - condition: (srcPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CopyPixelsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - numeric_limits<uint8_t>::max
    - min
    - std::get<3>
    - fill
    - end
    - begin
    - GetParam
    - std::get<1>
    - std::get<0>
    - assert
    - std::get<2>
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyPixels
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: rawspeed_test::CopyPixelsTest::copy
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const std::byte*>
    - copyPixels
    - reinterpret_cast<std::byte*>
    linkageType: ''
    returnType: void
    signature: void copy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:310,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: rawspeed_test::CopyPixelsTest::compare
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void compare()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:331,1
    - Dst: compare
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - copy
    - compare
    linkageType: ''
    returnType: void
    signature: void TEST_P(CopyPixelsTest, CopyPixelsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed_test::RoundDownTest::RoundDownTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundDownTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:58,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed_test::RoundDownTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    - Dst: roundDown
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundDown
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundDownTest, RoundDownTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed_test::RoundUpTest::RoundUpTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoundUpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:85,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:86,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rawspeed_test::RoundUpTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - roundUp
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundUpTest, RoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roundUpDivisionSafeTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:112,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:113,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: rawspeed_test::roundUpDivisionSafeTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - roundUpDivisionSafe
    linkageType: ''
    returnType: void
    signature: void TEST_P(roundUpDivisionSafeTest, roundUpDivisionSafeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: rawspeed_test::IsAlignedTest::IsAlignedTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsAlignedTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:164,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed_test::IsAlignedTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: isAligned
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    - Dst: roundUp
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - roundUp
    - isAligned
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAlignedTest, IsAlignedAfterRoundUpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::IsInTest::IsInTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsInTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:183,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: rawspeed_test::IsInTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    - Dst: isIn
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:200,1
    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: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - isIn
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsInTest, IsInTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::TrimSpacesTest::TrimSpacesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrimSpacesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: rawspeed_test::TrimSpacesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    - Dst: trimSpaces
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - trimSpaces
    linkageType: ''
    returnType: void
    signature: void TEST_P(TrimSpacesTest, TrimSpacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: rawspeed_test::SplitStringTest::SplitStringTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SplitStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:244,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:245,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: rawspeed_test::SplitStringTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitString
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:267,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:268,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - std::equal
    - ASSERT_EQ
    - auto::end
    - size
    - auto::begin
    - begin
    - splitString
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(SplitStringTest, SplitStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:273,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:274,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:275,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:277,1
    - Dst: std::make_unique<int>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<int>
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(MakeUniqueTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: rawspeed_test::CopyPixelsTest::CopyPixelsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CopyPixelsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:288,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:289,1
    - Dst: min
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:290,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:291,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:293,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: numeric_limits<uint8_t>::max
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:294,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:296,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:297,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:299,1
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dstPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    - condition: (srcPitch * height < numeric_limits<uint8_t>::max())
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: rawspeed_test::CopyPixelsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - numeric_limits<uint8_t>::max
    - min
    - std::get<3>
    - fill
    - end
    - begin
    - GetParam
    - std::get<1>
    - std::get<0>
    - assert
    - std::get<2>
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyPixels
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:303,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: rawspeed_test::CopyPixelsTest::copy
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const std::byte*>
    - copyPixels
    - reinterpret_cast<std::byte*>
    linkageType: ''
    returnType: void
    signature: void copy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:310,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: rawspeed_test::CopyPixelsTest::compare
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void compare()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:331,1
    - Dst: compare
      Src: /src/librawspeed/test/librawspeed/common/CommonTest.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
    functionUses: 0
    functionsReached:
    - copy
    - compare
    linkageType: ''
    returnType: void
    signature: void TEST_P(CopyPixelsTest, CopyPixelsTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: '& operator<<(::std::ostream& os, const BayerPhase p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const BayerPhase p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: '& operator<<(::std::ostream& os, const BayerPhase p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const BayerPhase p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<decltype(x)>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:86,1
    - Dst: std::apply
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    - Dst: std::forward<tuple_t>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - tuple_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed_test::get_array_from_tuple
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::apply
    - std::forward<decltype(x)>
    - std::forward<tuple_t>
    linkageType: ''
    returnType: auto
    signature: auto get_array_from_tuple(tuple_t&& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseFromCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_from_tuple
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: setCFA
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: rawspeed_test::BayerPhaseFromCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - get_array_from_tuple
    - find
    - end
    - GetParam
    - setCFA
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    - Dst: rawspeed::getAsBayerPhase
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsBayerPhase
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseFromCFATest, getAsBayerPhaseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseToCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    - Dst: has_value
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (in.has_value())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed_test::BayerPhaseToCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - has_value
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsCFAColors
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseToCFATest, getAsCFAColorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseShifTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BayerPhaseShifTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: '& operator<<(::std::ostream& os, const AbstractElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:185,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:186,1
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyPhaseShiftTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractColorElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractColorElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: rawspeed::applyStablePhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:224,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyStablePhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyStablePhaseShiftTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<decltype(x)>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:86,1
    - Dst: std::apply
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    - Dst: std::forward<tuple_t>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - tuple_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed_test::get_array_from_tuple
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::apply
    - std::forward<decltype(x)>
    - std::forward<tuple_t>
    linkageType: ''
    returnType: auto
    signature: auto get_array_from_tuple(tuple_t&& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseFromCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_from_tuple
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: setCFA
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: rawspeed_test::BayerPhaseFromCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - get_array_from_tuple
    - find
    - end
    - GetParam
    - setCFA
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    - Dst: rawspeed::getAsBayerPhase
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsBayerPhase
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseFromCFATest, getAsBayerPhaseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseToCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    - Dst: has_value
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (in.has_value())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed_test::BayerPhaseToCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - has_value
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsCFAColors
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseToCFATest, getAsCFAColorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseShifTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BayerPhaseShifTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: '& operator<<(::std::ostream& os, const AbstractElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:185,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:186,1
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyPhaseShiftTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractColorElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractColorElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: rawspeed::applyStablePhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:224,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyStablePhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyStablePhaseShiftTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<decltype(x)>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:86,1
    - Dst: std::apply
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    - Dst: std::forward<tuple_t>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - tuple_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed_test::get_array_from_tuple
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::apply
    - std::forward<decltype(x)>
    - std::forward<tuple_t>
    linkageType: ''
    returnType: auto
    signature: auto get_array_from_tuple(tuple_t&& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseFromCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_from_tuple
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: setCFA
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: rawspeed_test::BayerPhaseFromCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - get_array_from_tuple
    - find
    - end
    - GetParam
    - setCFA
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    - Dst: rawspeed::getAsBayerPhase
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsBayerPhase
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseFromCFATest, getAsBayerPhaseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseToCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    - Dst: has_value
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (in.has_value())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed_test::BayerPhaseToCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - has_value
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsCFAColors
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseToCFATest, getAsCFAColorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseShifTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BayerPhaseShifTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: '& operator<<(::std::ostream& os, const AbstractElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:185,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:186,1
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyPhaseShiftTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractColorElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractColorElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: rawspeed::applyStablePhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:224,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyStablePhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyStablePhaseShiftTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<decltype(x)>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:86,1
    - Dst: std::apply
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    - Dst: std::forward<tuple_t>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - tuple_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed_test::get_array_from_tuple
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::apply
    - std::forward<decltype(x)>
    - std::forward<tuple_t>
    linkageType: ''
    returnType: auto
    signature: auto get_array_from_tuple(tuple_t&& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseFromCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_array_from_tuple
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:97,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:98,1
    - Dst: setCFA
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: rawspeed_test::BayerPhaseFromCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - get_array_from_tuple
    - find
    - end
    - GetParam
    - setCFA
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    - Dst: rawspeed::getAsBayerPhase
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsBayerPhase
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseFromCFATest, getAsBayerPhaseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseToCFATest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    - Dst: has_value
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (in.has_value())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed_test::BayerPhaseToCFATest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - has_value
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - rawspeed::getAsCFAColors
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseToCFATest, getAsCFAColorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BayerPhaseShifTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:142,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed_test::BayerPhaseShifTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: '& operator<<(::std::ostream& os, const AbstractElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:185,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:186,1
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyPhaseShiftTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' os'
    - e
    argTypes:
    - ::std::ostream
    - AbstractColorElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const AbstractColorElement*
      e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:223,1
    - Dst: rawspeed::applyStablePhaseShift
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:224,1
    - Dst: at
      Src: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    functionUses: 0
    functionsReached:
    - at
    - EXPECT_EQ
    - rawspeed::applyStablePhaseShift
    linkageType: ''
    returnType: void
    signature: void TEST_P(BayerPhaseShifTest, applyStablePhaseShiftTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: '& operator<<(::std::ostream& os, const iPoint2D p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const iPoint2D p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - p
    argTypes:
    - ::std::ostream
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: '& operator<<(::std::ostream& os, const iPoint2D p)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const iPoint2D p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:63,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:64,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:75,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:80,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:81,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:86,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:87,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:89,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:103,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:104,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:106,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:110,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:111,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:113,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:117,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:118,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:120,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:123,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:124,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - std::move
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:133,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, EqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:139,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:143,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:144,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:145,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:146,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:147,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, NonEqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: rawspeed_test::PointTest::PointTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:158,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:160,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:161,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:163,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed_test::PointTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:284,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:290,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:303,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:309,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:315,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:321,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasPositiveAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:333,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: rawspeed_test::HasPositiveAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:351,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::find
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cbegin
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:353,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::cend
    - std::find
    - ASSERT_NO_THROW
    - hasPositiveArea
    - std::cbegin
    linkageType: ''
    returnType: void
    signature: void TEST_P(HasPositiveAreaTest, HasPositiveAreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: rawspeed_test::AreaTest::AreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:363,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:365,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:366,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: rawspeed_test::AreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - iPoint2D
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(AreaTest, AreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: rawspeed_test::OperatorsTest::OperatorsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OperatorsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:432,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:434,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:435,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:437,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:438,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:440,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:441,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:442,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:443,1
    - Dst: std::get<6>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: rawspeed_test::OperatorsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<6>
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorEQTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorNETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLTTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGEest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: isThisInside
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:813,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 822
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - getSmallest
    linkageType: ''
    returnType: void
    signature: void TEST_P(SmallestTest, GetSmallestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:63,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:64,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:75,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:80,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:81,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:86,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:87,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:89,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:103,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:104,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:106,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:110,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:111,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:113,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:117,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:118,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:120,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:123,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:124,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - std::move
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:133,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, EqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:139,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:143,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:144,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:145,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:146,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:147,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, NonEqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: rawspeed_test::PointTest::PointTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:158,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:160,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:161,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:163,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed_test::PointTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:284,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:290,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:303,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:309,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:315,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:321,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasPositiveAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:333,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: rawspeed_test::HasPositiveAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:351,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::find
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cbegin
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:353,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::cend
    - std::find
    - ASSERT_NO_THROW
    - hasPositiveArea
    - std::cbegin
    linkageType: ''
    returnType: void
    signature: void TEST_P(HasPositiveAreaTest, HasPositiveAreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: rawspeed_test::AreaTest::AreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:363,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:365,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:366,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: rawspeed_test::AreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - iPoint2D
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(AreaTest, AreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: rawspeed_test::OperatorsTest::OperatorsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OperatorsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:432,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:434,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:435,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:437,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:438,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:440,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:441,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:442,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:443,1
    - Dst: std::get<6>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: rawspeed_test::OperatorsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<6>
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorEQTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorNETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLTTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGEest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: isThisInside
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:813,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 822
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - getSmallest
    linkageType: ''
    returnType: void
    signature: void TEST_P(SmallestTest, GetSmallestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:63,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:64,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:75,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:80,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:81,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:86,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:87,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:89,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:103,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:104,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:106,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:110,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:111,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:113,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:117,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:118,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:120,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:123,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:124,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - std::move
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:133,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, EqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:139,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:143,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:144,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:145,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:146,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:147,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, NonEqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: rawspeed_test::PointTest::PointTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:158,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:160,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:161,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:163,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed_test::PointTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:284,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:290,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:303,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:309,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:315,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:321,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasPositiveAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:333,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: rawspeed_test::HasPositiveAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:351,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::find
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cbegin
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:353,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::cend
    - std::find
    - ASSERT_NO_THROW
    - hasPositiveArea
    - std::cbegin
    linkageType: ''
    returnType: void
    signature: void TEST_P(HasPositiveAreaTest, HasPositiveAreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: rawspeed_test::AreaTest::AreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:363,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:365,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:366,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: rawspeed_test::AreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - iPoint2D
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(AreaTest, AreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: rawspeed_test::OperatorsTest::OperatorsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OperatorsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:432,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:434,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:435,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:437,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:438,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:440,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:441,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:442,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:443,1
    - Dst: std::get<6>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: rawspeed_test::OperatorsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<6>
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorEQTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorNETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLTTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGEest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: isThisInside
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:813,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 822
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - getSmallest
    linkageType: ''
    returnType: void
    signature: void TEST_P(SmallestTest, GetSmallestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:63,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:64,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:69,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:71,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:75,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:77,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:80,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:81,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:86,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:87,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:89,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, Constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:103,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:104,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:106,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:110,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:111,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:113,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:117,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:118,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:120,1
    - Dst: std::move
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:123,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:124,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - std::move
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, AssignmentConstructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:133,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, EqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:139,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:143,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:144,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:145,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:146,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:147,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_NO_THROW
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(PointTest, NonEqualityOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: rawspeed_test::PointTest::PointTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:158,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:160,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:161,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:163,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:164,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed_test::PointTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:278,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:284,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceAddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:290,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:296,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, AddTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:303,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:309,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, InPlaceSubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:315,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:321,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(PointTest, SubTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasPositiveAreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:333,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: rawspeed_test::HasPositiveAreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:351,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::find
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cbegin
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:352,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:353,1
    - Dst: std::cend
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::cend
    - std::find
    - ASSERT_NO_THROW
    - hasPositiveArea
    - std::cbegin
    linkageType: ''
    returnType: void
    signature: void TEST_P(HasPositiveAreaTest, HasPositiveAreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: rawspeed_test::AreaTest::AreaTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AreaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:363,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:365,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:366,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: rawspeed_test::AreaTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - iPoint2D
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    - Dst: area
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - area
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(AreaTest, AreaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: rawspeed_test::OperatorsTest::OperatorsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OperatorsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:432,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:434,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:435,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:437,1
    - Dst: iPoint2D
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:438,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:440,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:441,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:442,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:443,1
    - Dst: std::get<6>
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: rawspeed_test::OperatorsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<6>
    - std::get<3>
    - std::get<5>
    - std::get<4>
    - std::get<0>
    - std::get<1>
    - GetParam
    - std::get<2>
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:677,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorEQTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:681,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorNETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:686,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLTTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:690,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:695,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorLETest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:699,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorGEest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    - Dst: isThisInside
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - ASSERT_EQ
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorsTest, OperatorsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:813,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:814,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:815,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:816,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:817,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:818,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:819,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    - Dst: getSmallest
      Src: /src/librawspeed/test/librawspeed/adt/PointTest.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 822
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NO_THROW
    - getSmallest
    linkageType: ''
    returnType: void
    signature: void TEST_P(SmallestTest, GetSmallestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - rawspeed::Array1DRef<T>
    - rawspeed::Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: "operator==(const rawspeed::Array1DRef<T> a,\n                       const
      rawspeed::Array1DRef<T> b)"
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    - rawspeed::Array1DRef<T>::end
    - rawspeed::Array1DRef<T>::size
    - rawspeed::Array1DRef<T>::begin
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const rawspeed::Array1DRef<T> a,\n                       const
      rawspeed::Array1DRef<T> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:41,1
    - Dst: r
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - r
    - size
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Array1DRef<T>&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    - Dst: rawspeed::Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - rawspeed::Array1DRef<T>
    - rawspeed::Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: "operator==(const rawspeed::Array1DRef<T> a,\n                       const
      rawspeed::Array1DRef<T> b)"
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    - rawspeed::Array1DRef<T>::end
    - rawspeed::Array1DRef<T>::size
    - rawspeed::Array1DRef<T>::begin
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const rawspeed::Array1DRef<T> a,\n                       const
      rawspeed::Array1DRef<T> b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:41,1
    - Dst: r
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - r
    - size
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Array1DRef<T>&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:61,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:61,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:70,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:70,1
    - Dst: std::fill
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:72,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:72,1
    - Dst: auto::addressOf
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:73,1
    - Dst: std::clamp
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:74,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:79,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:79,1
    - Dst: variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:80,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:81,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:83,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:83,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:87,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:87,1
    - Dst: variableLengthLoadNaiveViaConditionalLoad
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:88,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:89,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:91,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:91,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:95,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:95,1
    - Dst: variableLengthLoad
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:96,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:96,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:99,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: rawpeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - variableLengthLoad
    - variableLengthLoadNaiveViaMemcpy
    - std::vector::data
    - auto::end
    - std::clamp
    - Array1DRef
    - variableLengthLoadNaiveViaConditionalLoad
    - auto::begin
    - std::fill
    - Array1DRef<const unsigned char>
    - auto::addressOf
    - EXPECT_THAT
    - std::iota
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TEST(VariableLengthLoadTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:61,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:61,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:62,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:70,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:70,1
    - Dst: std::fill
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:71,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:72,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:72,1
    - Dst: auto::addressOf
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:73,1
    - Dst: std::clamp
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:74,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:79,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:79,1
    - Dst: variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:80,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:81,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:83,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:83,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:87,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:87,1
    - Dst: variableLengthLoadNaiveViaConditionalLoad
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:88,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:89,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:91,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:91,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:95,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:95,1
    - Dst: variableLengthLoad
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:96,1
    - Dst: Array1DRef<const unsigned char>
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:96,1
    - Dst: EXPECT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:99,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: rawpeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
    functionUses: 0
    functionsReached:
    - variableLengthLoad
    - variableLengthLoadNaiveViaMemcpy
    - std::vector::data
    - auto::end
    - std::clamp
    - Array1DRef
    - variableLengthLoadNaiveViaConditionalLoad
    - auto::begin
    - std::fill
    - Array1DRef<const unsigned char>
    - auto::addressOf
    - EXPECT_THAT
    - std::iota
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TEST(VariableLengthLoadTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PowerOfTwoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed_test::PowerOfTwoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(PowerOfTwoTest, PowerOfTwoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed_test::ClampBitsTest::ClampBitsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClampBitsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: rawspeed_test::ClampBitsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - 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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: MIN
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: MAX
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ROW
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 212
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: ROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROWS(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: THREEROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREEROWS(v, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: MOREROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOREROWS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: GENERATE
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ClampBitsTest, ClampBitsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsDeathTest, Only16Bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:122,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    - Dst: clampBits<uint16_t>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits<uint16_t>
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsUnsignedDeathTest, NoNopClamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PowerOfTwoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed_test::PowerOfTwoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(PowerOfTwoTest, PowerOfTwoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed_test::ClampBitsTest::ClampBitsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClampBitsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: rawspeed_test::ClampBitsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - 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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: MIN
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: MAX
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ROW
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 212
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: ROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROWS(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: THREEROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREEROWS(v, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: MOREROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOREROWS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: GENERATE
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ClampBitsTest, ClampBitsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsDeathTest, Only16Bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:122,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    - Dst: clampBits<uint16_t>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits<uint16_t>
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsUnsignedDeathTest, NoNopClamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PowerOfTwoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed_test::PowerOfTwoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(PowerOfTwoTest, PowerOfTwoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed_test::ClampBitsTest::ClampBitsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClampBitsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: rawspeed_test::ClampBitsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - 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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: MIN
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: MAX
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ROW
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 212
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: ROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROWS(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: THREEROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREEROWS(v, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: MOREROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOREROWS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: GENERATE
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ClampBitsTest, ClampBitsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsDeathTest, Only16Bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:122,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    - Dst: clampBits<uint16_t>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits<uint16_t>
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsUnsignedDeathTest, NoNopClamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PowerOfTwoTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:47,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed_test::PowerOfTwoTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(PowerOfTwoTest, PowerOfTwoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed_test::ClampBitsTest::ClampBitsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClampBitsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:72,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:73,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: rawspeed_test::ClampBitsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - 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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: MIN
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: MAX
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ROW
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 212
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - p
    - ','
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: ROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROWS(v, p, pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: THREEROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREEROWS(v, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: MOREROWS
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOREROWS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: GENERATE
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ClampBitsTest, ClampBitsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    - Dst: clampBits
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsDeathTest, Only16Bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:122,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    - Dst: clampBits<uint16_t>
      Src: /src/librawspeed/test/librawspeed/adt/BitTest.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
    functionUses: 0
    functionsReached:
    - clampBits<uint16_t>
    - ASSERT_EQ
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(ClampBitsUnsignedDeathTest, NoNopClamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:50,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:51,1
    - Dst: static_cast<WideType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::rawpeed_test::getInput
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WideType>
    - bitwidth<PartType>
    - static_cast<PartType>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::pair<WideType, std::vector<PartType>>
    signature: std::pair<WideType, std::vector<PartType>> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rawpeed_test::getInput
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:60,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::Eq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - testing::Eq
    - size
    - PartitioningOutputIterator
    - testing::SizeIs
    - std::vector::reserve
    - rawspeed::rawpeed_test::getInput
    - std::back_inserter
    - ASSERT_THAT
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(PartitioningOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:50,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:51,1
    - Dst: static_cast<WideType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::rawpeed_test::getInput
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 1
    functionsReached:
    - static_cast<WideType>
    - bitwidth<PartType>
    - static_cast<PartType>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::pair<WideType, std::vector<PartType>>
    signature: std::pair<WideType, std::vector<PartType>> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rawpeed_test::getInput
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:60,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::Eq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - testing::Eq
    - size
    - PartitioningOutputIterator
    - testing::SizeIs
    - std::vector::reserve
    - rawspeed::rawpeed_test::getInput
    - std::back_inserter
    - ASSERT_THAT
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(PartitioningOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:50,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:51,1
    - Dst: static_cast<WideType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::rawpeed_test::getInput
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 2
    functionsReached:
    - static_cast<WideType>
    - bitwidth<PartType>
    - static_cast<PartType>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::pair<WideType, std::vector<PartType>>
    signature: std::pair<WideType, std::vector<PartType>> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rawpeed_test::getInput
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:60,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::Eq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - testing::Eq
    - size
    - PartitioningOutputIterator
    - testing::SizeIs
    - std::vector::reserve
    - rawspeed::rawpeed_test::getInput
    - std::back_inserter
    - ASSERT_THAT
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(PartitioningOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:50,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:51,1
    - Dst: static_cast<WideType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::rawpeed_test::getInput
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 3
    functionsReached:
    - static_cast<WideType>
    - bitwidth<PartType>
    - static_cast<PartType>
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::pair<WideType, std::vector<PartType>>
    signature: std::pair<WideType, std::vector<PartType>> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rawpeed_test::getInput
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:60,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:63,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:65,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: testing::Eq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:69,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - testing::Eq
    - size
    - PartitioningOutputIterator
    - testing::SizeIs
    - std::vector::reserve
    - rawspeed::rawpeed_test::getInput
    - std::back_inserter
    - ASSERT_THAT
    - testing::ContainerEq
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(PartitioningOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_EQ
    - Range::end
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedRangeForTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:50,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:51,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:52,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:53,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:54,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:55,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:56,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:57,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:58,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:59,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:67,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:68,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:69,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:70,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:71,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:72,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:73,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:74,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:75,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:76,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedCrossoverContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:84,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:85,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:86,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:87,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:88,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:89,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:90,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:91,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:92,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:93,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicUnsignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:101,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:102,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:103,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:104,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, SignedZeroSizeContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:112,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:113,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:114,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:115,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, UnsignedZeroSizeContainsTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:123,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - ASSERT_PRED_FORMAT2
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, OverlapDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_EQ
    - Range::end
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedRangeForTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:50,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:51,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:52,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:53,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:54,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:55,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:56,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:57,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:58,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:59,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:67,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:68,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:69,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:70,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:71,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:72,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:73,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:74,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:75,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:76,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedCrossoverContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:84,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:85,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:86,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:87,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:88,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:89,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:90,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:91,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:92,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:93,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicUnsignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:101,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:102,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:103,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:104,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, SignedZeroSizeContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:112,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:113,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:114,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:115,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, UnsignedZeroSizeContainsTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:123,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - ASSERT_PRED_FORMAT2
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, OverlapDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_EQ
    - Range::end
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedRangeForTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:50,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:51,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:52,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:53,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:54,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:55,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:56,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:57,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:58,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:59,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:67,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:68,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:69,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:70,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:71,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:72,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:73,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:74,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:75,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:76,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedCrossoverContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:84,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:85,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:86,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:87,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:88,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:89,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:90,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:91,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:92,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:93,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicUnsignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:101,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:102,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:103,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:104,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, SignedZeroSizeContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:112,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:113,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:114,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:115,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, UnsignedZeroSizeContainsTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:123,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - ASSERT_PRED_FORMAT2
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, OverlapDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:36,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:37,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:40,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    - Dst: Range::end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_EQ
    - Range::end
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedRangeForTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:48,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:50,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:51,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:52,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:53,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:54,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:55,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:56,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:57,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:58,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:59,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:65,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:67,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:68,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:69,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:70,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:71,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:72,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:73,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:74,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:75,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:76,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicSignedCrossoverContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:82,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:84,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:85,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:86,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:87,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:88,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:89,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:90,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:91,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:92,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:93,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, BasicUnsignedContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:99,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:101,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:102,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:103,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:104,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, SignedZeroSizeContainsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: Range::begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:110,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:112,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:113,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:114,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:115,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - Range::begin
    - ASSERT_PRED_FORMAT2
    linkageType: ''
    returnType: void
    signature: void TEST(RangeTest, UnsignedZeroSizeContainsTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:122,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:123,1
    - Dst: ASSERT_PRED_FORMAT2
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - ASSERT_PRED_FORMAT2
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, OverlapDataTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:33,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:33,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:34,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:34,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:35,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Range<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: '& operator<<(::std::ostream& os, const Range<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Range<T>& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:33,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:33,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:34,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:34,1
    - Dst: begin
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:35,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Range<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: '& operator<<(::std::ostream& os, const Range<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Range<T>& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:51,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:53,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:54,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: rawspeed_test::RangeContains
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 1
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeContains(const char* range_expr,\n
      \                                        const char* pos_expr,\n                                         const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:67,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:69,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:70,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: rawspeed_test::RangeDoesntContain
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeDoesntContain(const char* range_expr,\n
      \                                             const char* pos_expr,\n                                              const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:82,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:85,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: rawspeed_test::RangesOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 1
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesOverlap(const char* m_expr, const
      char* n_expr,\n                                         const T& lhs, const
      T& rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:98,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:101,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: rawspeed_test::RangesDontOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesDontOverlap(const char* m_expr,\n
      \                                            const char* n_expr, const T& lhs,\n
      \                                            const T& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TwoRangesTest::TwoRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TwoRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: rawspeed_test::TwoRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - std::get<3>
    - Range<int>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:51,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:53,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:54,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: rawspeed_test::RangeContains
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 3
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeContains(const char* range_expr,\n
      \                                        const char* pos_expr,\n                                         const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:67,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:69,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:70,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: rawspeed_test::RangeDoesntContain
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeDoesntContain(const char* range_expr,\n
      \                                             const char* pos_expr,\n                                              const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:82,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:85,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: rawspeed_test::RangesOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 3
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesOverlap(const char* m_expr, const
      char* n_expr,\n                                         const T& lhs, const
      T& rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:98,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:101,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: rawspeed_test::RangesDontOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesDontOverlap(const char* m_expr,\n
      \                                            const char* n_expr, const T& lhs,\n
      \                                            const T& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TwoRangesTest::TwoRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TwoRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: rawspeed_test::TwoRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - std::get<3>
    - Range<int>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:51,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:53,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:54,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: rawspeed_test::RangeContains
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 5
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeContains(const char* range_expr,\n
      \                                        const char* pos_expr,\n                                         const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:67,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:69,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:70,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: rawspeed_test::RangeDoesntContain
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeDoesntContain(const char* range_expr,\n
      \                                             const char* pos_expr,\n                                              const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:82,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:85,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: rawspeed_test::RangesOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 5
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesOverlap(const char* m_expr, const
      char* n_expr,\n                                         const T& lhs, const
      T& rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:98,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:101,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: rawspeed_test::RangesDontOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesDontOverlap(const char* m_expr,\n
      \                                            const char* n_expr, const T& lhs,\n
      \                                            const T& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TwoRangesTest::TwoRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TwoRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: rawspeed_test::TwoRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - std::get<3>
    - Range<int>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:50,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:51,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:53,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:54,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: rawspeed_test::RangeContains
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 7
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeContains(const char* range_expr,\n
      \                                        const char* pos_expr,\n                                         const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:66,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:67,1
    - Dst: rawspeed_test::RangeContains
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:69,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:70,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - range_expr
    - pos_expr
    - ' r'
    - ' pos'
    argTypes:
    - char*
    - char*
    - Range<T>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: rawspeed_test::RangeDoesntContain
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - ::testing::AssertionFailure
    - ::testing::AssertionSuccess
    - end
    - rawspeed_test::RangeContains
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangeDoesntContain(const char* range_expr,\n
      \                                             const char* pos_expr,\n                                              const
      Range<T>& r, const T& pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:81,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:82,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:84,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:85,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: rawspeed_test::RangesOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 7
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesOverlap(const char* m_expr, const
      char* n_expr,\n                                         const T& lhs, const
      T& rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:97,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:98,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:100,1
    - Dst: ::testing::AssertionSuccess
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:101,1
    - Dst: ::testing::AssertionFailure
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - m_expr
    - n_expr
    - ' lhs'
    - ' rhs'
    argTypes:
    - char*
    - char*
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: rawspeed_test::RangesDontOverlap
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ::testing::AssertionSuccess
    - ::testing::AssertionFailure
    linkageType: ''
    returnType: ::testing::AssertionResult
    signature: "::testing::AssertionResult RangesDontOverlap(const char* m_expr,\n
      \                                            const char* n_expr, const T& lhs,\n
      \                                            const T& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed_test::TwoRangesTest::TwoRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TwoRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:113,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/RangeTest.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: rawspeed_test::TwoRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/RangeTest.h
    functionUses: 0
    functionsReached:
    - std::get<3>
    - Range<int>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:40,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:41,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:44,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:45,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:50,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:51,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_FALSE
    - ASSERT_TRUE
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataSelfTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:62,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:63,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:65,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:68,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:70,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:75,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:76,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:78,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:81,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - find
    - NORangesSet::insert
    - end
    - GetParam
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: rawspeed_test::ThreeRangesTest::ThreeRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreeRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rawspeed_test::ThreeRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - Range<int>
    - std::get<4>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:111,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:113,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ASSERT_TRUE
    - ASSERT_EQ
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(ThreeRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:40,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:41,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:44,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:45,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:50,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:51,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_FALSE
    - ASSERT_TRUE
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataSelfTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:62,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:63,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:65,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:68,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:70,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:75,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:76,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:78,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:81,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - find
    - NORangesSet::insert
    - end
    - GetParam
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: rawspeed_test::ThreeRangesTest::ThreeRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreeRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rawspeed_test::ThreeRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - Range<int>
    - std::get<4>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:111,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:113,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ASSERT_TRUE
    - ASSERT_EQ
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(ThreeRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:40,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:41,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:44,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:45,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:50,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:51,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_FALSE
    - ASSERT_TRUE
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataSelfTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:62,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:63,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:65,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:68,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:70,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:75,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:76,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:78,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:81,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - find
    - NORangesSet::insert
    - end
    - GetParam
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: rawspeed_test::ThreeRangesTest::ThreeRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreeRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rawspeed_test::ThreeRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - Range<int>
    - std::get<4>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:111,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:113,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ASSERT_TRUE
    - ASSERT_EQ
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(ThreeRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:40,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:41,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:44,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:45,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:50,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:51,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:54,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_FALSE
    - ASSERT_TRUE
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataSelfTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:62,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:63,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:65,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:67,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:68,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:70,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:75,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:76,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:78,1
    - Dst: find
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: end
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:80,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:81,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - find
    - NORangesSet::insert
    - end
    - GetParam
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_P(TwoRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: rawspeed_test::ThreeRangesTest::ThreeRangesTest
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreeRangesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:93,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: std::get<3>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:94,1
    - Dst: Range<int>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<4>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: std::get<5>
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rawspeed_test::ThreeRangesTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<3>
    - std::get<5>
    - Range<int>
    - std::get<4>
    - GetParam
    - std::get<1>
    - std::get<0>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:111,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:113,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:114,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:118,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    - Dst: rawspeed_test::RangesOverlap
      Src: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed_test::RangesOverlap
    - ASSERT_TRUE
    - ASSERT_EQ
    - NORangesSet::insert
    linkageType: ''
    returnType: void
    signature: void TEST_P(ThreeRangesTest, NORangesSetDataTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Array1DRef<T>
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: operator==(const Array1DRef<T> a, const Array1DRef<T> b)
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<T>::end
    - Array1DRef<T>::size
    - std::equal
    - Array1DRef<T>::begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Array1DRef<T> a, const Array1DRef<T> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_integer<uint8_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - ::std::ostream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: '& operator<<(::std::ostream& os, const T& b)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::to_integer<uint8_t>
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const T& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:53,1
    - Dst: r
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - r
    - size
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Array1DRef<T>&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 2
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 3
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: std::equal
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    - Dst: Array1DRef<T>::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Array1DRef<T>
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: operator==(const Array1DRef<T> a, const Array1DRef<T> b)
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<T>::end
    - Array1DRef<T>::size
    - std::equal
    - Array1DRef<T>::begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Array1DRef<T> a, const Array1DRef<T> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_integer<uint8_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' b'
    argTypes:
    - ::std::ostream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: '& operator<<(::std::ostream& os, const T& b)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::to_integer<uint8_t>
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const T& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:53,1
    - Dst: r
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' r'
    argTypes:
    - ::std::ostream
    - Array1DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - r
    - size
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const Array1DRef<T>&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 4
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 5
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 6
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:70,1
    - Dst: Array1DRef<const PartType>::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:71,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:72,1
    - Dst: CoalescingOutputIterator<decltype(subIter), PartType>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const PartType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rawspeed::rawpeed_test::coalesceElts
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 7
    functionsReached:
    - std::vector::reserve
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - Array1DRef<const PartType>::size
    - std::back_inserter
    - CoalescingOutputIterator<decltype(subIter), PartType>
    linkageType: ''
    returnType: auto
    signature: auto coalesceElts(Array1DRef<const PartType> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:96,1
    - Dst: std::iota
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::begin
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: auto::end
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:97,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:100,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:103,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:105,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:107,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:109,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:110,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:111,1
    - Dst: rawspeed::rawpeed_test::coalesceElts
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:114,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:117,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:118,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::SizeIs
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: testing::Ge
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:119,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:120,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: rawspeed::rawpeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::end
    - Array1DRef
    - testing::SizeIs
    - implicit_cast<int>
    - auto::begin
    - std::vector::size
    - rawspeed::rawpeed_test::coalesceElts
    - Array1DRef<std::byte>
    - ASSERT_THAT
    - std::iota
    - auto::getBlock
    - testing::ContainerEq
    - testing::Ge
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(CoalescingOutputIteratorTest, Exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB16, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB16Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB16Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:178,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:193,1
    - Dst: BitStreamerMSB16
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:200,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:201,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    - BitStreamerMSB16
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:214,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:217,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:237,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:238,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:240,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:241,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:244,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 252
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:265,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:268,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:276,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:277,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:284,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:292,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:293,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:294,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:299,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:301,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:306,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:313,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 318
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:331,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:334,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:342,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:343,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:350,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:355,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:362,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:368,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 372
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB16Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB16Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:178,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 1
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:193,1
    - Dst: BitStreamerMSB16
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:200,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:201,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    - BitStreamerMSB16
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:214,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:217,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:237,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:238,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:240,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:241,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:244,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 252
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:265,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:268,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:276,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:277,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:284,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:292,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:293,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:294,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:299,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:301,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:306,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:313,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 318
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:331,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:334,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:342,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:343,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:350,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:355,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:362,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:368,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 372
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB16Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB16Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:178,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 2
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:193,1
    - Dst: BitStreamerMSB16
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:200,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:201,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    - BitStreamerMSB16
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:214,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:217,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:237,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:238,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:240,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:241,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:244,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 252
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:265,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:268,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:276,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:277,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:284,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:292,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:293,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:294,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:299,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:301,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:306,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:313,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 318
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:331,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:334,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:342,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:343,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:350,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:355,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:362,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:368,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 372
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB16Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB16Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:176,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:178,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 3
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:188,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:193,1
    - Dst: BitStreamerMSB16
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:196,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:197,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:198,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:200,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:201,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    - BitStreamerMSB16
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB16Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:212,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:214,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:217,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:221,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:235,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:237,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:238,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:240,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:241,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:244,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 252
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:263,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:265,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:268,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:273,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:276,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:277,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:281,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:284,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:286,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:292,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:293,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:294,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:297,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:299,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:301,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:306,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:308,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:309,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:313,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:314,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 318
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:329,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:331,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:334,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:339,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:342,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:343,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:347,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:350,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:352,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:355,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:362,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:364,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:368,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 372
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB16Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - getBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - fill
    - getBitsNoFill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - gen
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - peekBitsNoFill
    - ASSERT_EQ
    - skipBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:120,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - peekBitsNoFill
    - ASSERT_EQ
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - gen
    argTypes:
    - TestDataType
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BitStreamerTest::runTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    - rawspeed::implicit_cast<int>
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void runTest(const TestDataType& data, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - getBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - fill
    - getBitsNoFill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - gen
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - peekBitsNoFill
    - ASSERT_EQ
    - skipBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:120,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - peekBitsNoFill
    - ASSERT_EQ
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - gen
    argTypes:
    - TestDataType
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BitStreamerTest::runTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    - rawspeed::implicit_cast<int>
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void runTest(const TestDataType& data, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - getBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - fill
    - getBitsNoFill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - gen
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - peekBitsNoFill
    - ASSERT_EQ
    - skipBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:120,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - peekBitsNoFill
    - ASSERT_EQ
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - gen
    argTypes:
    - TestDataType
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BitStreamerTest::runTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    - rawspeed::implicit_cast<int>
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void runTest(const TestDataType& data, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - getBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:61,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - ASSERT_EQ
    - fill
    - getBitsNoFill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:75,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - gen
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:88,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: gen
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:90,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' pump'
    - gen
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - gen
    - peekBitsNoFill
    - ASSERT_EQ
    - skipBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: peekBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - ASSERT_EQ
    - peekBits
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:120,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' pump'
    - data
    argTypes:
    - PumpT
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: rawspeed_test::Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::data
    - peekBitsNoFill
    - ASSERT_EQ
    - fill
    linkageType: ''
    returnType: void
    signature: void Test(PumpT& pump, L data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:136,1
    - Dst: rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - gen
    argTypes:
    - TestDataType
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: rawspeed_test::BitStreamerTest::runTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
    - rawspeed::implicit_cast<int>
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void runTest(const TestDataType& data, L gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestGetBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestGetBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, GetNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestPeekBitsNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestPeekBitsNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, PeekNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed_test::TYPED_TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached:
    - rawspeed_test::template runTest<TestIncreasingPeekLengthNoFillTag>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthNoFillTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: rawspeed_test::element
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t element(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: rawspeed_test::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t data(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesLE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerLSB, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerMSB32, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, OnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenOnesBE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - GenOnesBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Pattern<BitStreamerJPEG, InvOnesTag>::data(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerLSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerLSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 4
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:196,1
    - Dst: BitStreamerLSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB
    - empty
    - rawspeed::implicit_cast
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:288,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:304,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:354,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:358,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerLSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerLSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 5
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:196,1
    - Dst: BitStreamerLSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB
    - empty
    - rawspeed::implicit_cast
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:288,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:304,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:354,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:358,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerLSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerLSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 6
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:196,1
    - Dst: BitStreamerLSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB
    - empty
    - rawspeed::implicit_cast
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:288,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:304,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:354,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:358,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerLSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerLSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 7
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:196,1
    - Dst: BitStreamerLSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB
    - empty
    - rawspeed::implicit_cast
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerLSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:284,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:288,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:304,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:350,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:354,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:358,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerLSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB32Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB32Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 8
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:196,1
    - Dst: BitStreamerMSB32
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB32
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB32Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB32Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 9
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:196,1
    - Dst: BitStreamerMSB32
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB32
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB32Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB32Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 10
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:196,1
    - Dst: BitStreamerMSB32
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB32
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSB32Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSB32Test::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 11
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:196,1
    - Dst: BitStreamerMSB32
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB32
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSB32Test, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSB32Test, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 12
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:196,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 13
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:196,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 14
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:196,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerMSBTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:57,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: rawspeed::BitVacuumerMSBTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:179,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:181,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 15
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:191,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Synthesis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:196,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:199,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:200,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:201,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:203,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:204,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - empty
    - data
    - Array1DRef
    - size
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerMSB
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerMSBTest, Dissolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:215,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:217,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:220,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:224,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:238,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:240,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:241,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:243,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:244,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:247,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - PartitioningOutputIterator
    - BitStreamer
    - auto::getBitsNoFill
    - std::vector::size
    - auto::put
    - std::back_inserter
    - ASSERT_THAT
    - ASSERT_NE
    - BitVacuumer
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, LoadPos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:266,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:268,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:271,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:276,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:279,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:280,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:284,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:287,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:289,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:295,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:296,1
    - Dst: rawspeed::getAsByteStreamPosition
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:297,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:300,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:302,1
    - Dst: auto::skipBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:304,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:309,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:311,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:312,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:316,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:317,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 321
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - roundUpDivision
    - auto::skipBits
    - auto::getFillLevel
    - auto::size
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - rawspeed::extractLowBits
    - auto::getCrop
    - rawspeed::implicit_cast
    - rawspeed::getAsByteStreamPosition
    - std::vector::size
    - auto::getBits
    - std::back_inserter
    - std::vector::data
    - BitStreamer
    - auto::put
    - auto::getInputPosition
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, DependencyBreaking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:332,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:334,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:337,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:342,1
    - Dst: BitStreamer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:345,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:346,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:350,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:353,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:355,1
    - Dst: auto::reload
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:358,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:365,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:367,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:371,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    - Dst: auto::getBits
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 375
    functionName: rawspeed::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - auto::fill
    - rawspeed::extractHighBits
    - PartitioningOutputIterator
    - BitStreamer
    - auto::reload
    - std::vector::size
    - roundUpDivision
    - auto::put
    - auto::getBits
    - rawspeed::extractLowBits
    - std::back_inserter
    - ASSERT_THAT
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void TEST(BitVacuumerMSBTest, ReloadCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerJPEGTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerJPEGTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:177,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 16
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:187,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Synthesis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:197,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:198,1
    - Dst: BitStreamerJPEG
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:204,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:205,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::implicit_cast
    - Array1DRef
    - size
    - data
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerJPEG
    - ASSERT_THAT
    - resize
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Dissolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerJPEGTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerJPEGTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:177,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 17
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:187,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Synthesis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:197,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:198,1
    - Dst: BitStreamerJPEG
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:204,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:205,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::implicit_cast
    - Array1DRef
    - size
    - data
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerJPEG
    - ASSERT_THAT
    - resize
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Dissolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerJPEGTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerJPEGTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:177,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 18
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:187,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Synthesis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:197,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:198,1
    - Dst: BitStreamerJPEG
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:204,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:205,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::implicit_cast
    - Array1DRef
    - size
    - data
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerJPEG
    - ASSERT_THAT
    - resize
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Dissolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumerJPEGTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:53,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::BitVacuumerJPEGTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:175,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:177,1
    - Dst: auto::put
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' recepie'
    argTypes:
    - RecepieType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: rawspeed::synthesizeBitstream
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 19
    functionsReached:
    - PartitioningOutputIterator
    - BitVacuumer
    - std::back_inserter
    - auto::put
    linkageType: ''
    returnType: ResultType
    signature: ResultType synthesizeBitstream(const RecepieType& recepie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::synthesizeBitstream
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:187,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    - Dst: testing::ContainerEq
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - testing::ContainerEq
    - rawspeed::synthesizeBitstream
    - ASSERT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Synthesis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:197,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:198,1
    - Dst: BitStreamerJPEG
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: Array1DRef
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:200,1
    - Dst: data
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:201,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:202,1
    - Dst: auto::fill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:204,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:205,1
    - Dst: ASSERT_THAT
      Src: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: rawspeed::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::implicit_cast
    - Array1DRef
    - size
    - data
    - auto::fill
    - auto::getBitsNoFill
    - BitStreamerJPEG
    - ASSERT_THAT
    - resize
    linkageType: ''
    returnType: void
    signature: void TEST_P(BitVacuumerJPEGTest, Dissolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:80,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:98,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:114,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:115,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:129,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:80,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:98,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:114,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:115,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:129,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:80,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:98,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:114,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:115,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:129,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:74,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:80,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:92,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:98,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:101,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:102,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceIdentityTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:108,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:114,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:115,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:117,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeCodeValue
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeCodeValueBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: std::array::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:123,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:129,1
    - Dst: auto::setup
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:130,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:132,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ASSERT_EQ
    - genHTFull
    - auto::setup
    - ASSERT_THROW
    - std::array::data
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixCodeDecoderTest, decodeDifferenceBadCodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - HuffmanCode<BaselineCodeTag>
    - HuffmanCode<BaselineCodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: "operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
      HuffmanCode<BaselineCodeTag>& rhs)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
      HuffmanCode<BaselineCodeTag>& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bitset<32>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:65,1
    - Dst: auto::substr
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:67,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - s
    argTypes:
    - ::std::ostream
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: "&\noperator<<(::std::ostream& os,\n           const HuffmanCode<BaselineCodeTag>::CodeSymbol
      s)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::bitset<32>
    - auto::substr
    - auto::size
    linkageType: ''
    returnType: ::std::ostream
    signature: "::std::ostream &\noperator<<(::std::ostream& os,\n           const
      HuffmanCode<BaselineCodeTag>::CodeSymbol s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: "operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n
      \                      const HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n
      \                      const HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - HuffmanCode<BaselineCodeTag>
    - HuffmanCode<BaselineCodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: "operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
      HuffmanCode<BaselineCodeTag>& rhs)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
      HuffmanCode<BaselineCodeTag>& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bitset<32>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:65,1
    - Dst: auto::substr
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:67,1
    - Dst: auto::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - s
    argTypes:
    - ::std::ostream
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: "&\noperator<<(::std::ostream& os,\n           const HuffmanCode<BaselineCodeTag>::CodeSymbol
      s)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::bitset<32>
    - auto::substr
    - auto::size
    linkageType: ''
    returnType: ::std::ostream
    signature: "::std::ostream &\noperator<<(::std::ostream& os,\n           const
      HuffmanCode<BaselineCodeTag>::CodeSymbol s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    - HuffmanCode<BaselineCodeTag>::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: "operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n
      \                      const HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n
      \                      const HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - s
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeCodeSymbolTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:94,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:95,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:96,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:97,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:98,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:99,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:101,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolDeathTest, CodeSymbolLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:111,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed_test::CodeSymbolDeathTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:138,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:140,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:141,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:143,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:147,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:149,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:150,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:153,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::ExitedWithCode
    - "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolDeathTest, CodeSymbolDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolPrintTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:166,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:168,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:169,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed_test::CodeSymbolPrintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:190,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:192,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - rawspeed::implicit_cast<uint8_t>
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::PrintToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolPrintTest, CodeSymbolPrintTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolHaveCommonPrefixTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:206,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:222,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:225,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (allVariants.size() == expectedCnt)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: rawspeed_test::GenerateAllPossibleCodeSymbols
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::reserve
    - std::vector::size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol>
    signature: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol> GenerateAllPossibleCodeSymbols()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:239,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:240,1
    - Dst: std::min
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:243,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:244,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - auto::length
    - ::testing::PrintToString
    - auto::resize
    - std::min
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:255,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:256,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:270,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:272,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:276,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DEATH
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixDeathTest, AsymmetricalDeathTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:324,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:331,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:332,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:333,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:336,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:338,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:340,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - exit
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - Buffer::getSize
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:353,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEmptyIsBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesTotal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:386,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:389,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ASSERT_THROW
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesForLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCodeSymbolOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - genHTCount
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCounts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:423,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:425,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:426,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:428,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:430,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:432,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:435,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:436,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:439,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:441,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:442,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 448
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - HuffmanCode::setCodeValues
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - std::vector::resize
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:451,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:455,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:461,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:465,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:467,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setCodeValuesValueLessThan16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHTFull
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, EqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: rawspeed_test::SignExtendTest::SignExtendTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignExtendTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:494,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:496,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:497,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: rawspeed_test::SignExtendTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:581,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SignExtendTest, SignExtendTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void generateCodeSymbolsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:594,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:596,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:597,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: rawspeed_test::generateCodeSymbolsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:641,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:643,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:646,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:648,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    - Dst: HuffmanCode::generateCodeSymbols
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - HuffmanCode::setCodeValues
    - HuffmanCode::generateCodeSymbols
    - size
    - HuffmanCode::setNCodesPerLength
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - rawspeed_test::data
    linkageType: ''
    returnType: void
    signature: void TEST_P(generateCodeSymbolsTest, generateCodeSymbolsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - s
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeCodeSymbolTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:94,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:95,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:96,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:97,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:98,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:99,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:101,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolDeathTest, CodeSymbolLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:111,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed_test::CodeSymbolDeathTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:138,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:140,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:141,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:143,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:147,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:149,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:150,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:153,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::ExitedWithCode
    - "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolDeathTest, CodeSymbolDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolPrintTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:166,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:168,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:169,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed_test::CodeSymbolPrintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:190,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:192,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - rawspeed::implicit_cast<uint8_t>
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::PrintToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolPrintTest, CodeSymbolPrintTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolHaveCommonPrefixTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:206,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:222,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:225,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (allVariants.size() == expectedCnt)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: rawspeed_test::GenerateAllPossibleCodeSymbols
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::reserve
    - std::vector::size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol>
    signature: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol> GenerateAllPossibleCodeSymbols()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:239,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:240,1
    - Dst: std::min
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:243,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:244,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - auto::length
    - ::testing::PrintToString
    - auto::resize
    - std::min
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:255,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:256,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:270,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:272,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:276,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DEATH
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixDeathTest, AsymmetricalDeathTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:324,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:331,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:332,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:333,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:336,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:338,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:340,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - exit
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - Buffer::getSize
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:353,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEmptyIsBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesTotal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:386,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:389,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ASSERT_THROW
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesForLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCodeSymbolOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - genHTCount
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCounts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:423,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:425,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:426,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:428,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:430,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:432,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:435,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:436,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:439,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:441,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:442,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 448
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - HuffmanCode::setCodeValues
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - std::vector::resize
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:451,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:455,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:461,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:465,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:467,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setCodeValuesValueLessThan16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHTFull
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, EqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: rawspeed_test::SignExtendTest::SignExtendTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignExtendTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:494,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:496,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:497,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: rawspeed_test::SignExtendTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:581,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SignExtendTest, SignExtendTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void generateCodeSymbolsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:594,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:596,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:597,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: rawspeed_test::generateCodeSymbolsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:641,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:643,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:646,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:648,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    - Dst: HuffmanCode::generateCodeSymbols
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - HuffmanCode::setCodeValues
    - HuffmanCode::generateCodeSymbols
    - size
    - HuffmanCode::setNCodesPerLength
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - rawspeed_test::data
    linkageType: ''
    returnType: void
    signature: void TEST_P(generateCodeSymbolsTest, generateCodeSymbolsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - s
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeCodeSymbolTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:94,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:95,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:96,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:97,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:98,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:99,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:101,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolDeathTest, CodeSymbolLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:111,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed_test::CodeSymbolDeathTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:138,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:140,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:141,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:143,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:147,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:149,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:150,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:153,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::ExitedWithCode
    - "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolDeathTest, CodeSymbolDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolPrintTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:166,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:168,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:169,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed_test::CodeSymbolPrintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:190,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:192,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - rawspeed::implicit_cast<uint8_t>
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::PrintToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolPrintTest, CodeSymbolPrintTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolHaveCommonPrefixTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:206,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:222,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:225,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (allVariants.size() == expectedCnt)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: rawspeed_test::GenerateAllPossibleCodeSymbols
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::reserve
    - std::vector::size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol>
    signature: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol> GenerateAllPossibleCodeSymbols()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:239,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:240,1
    - Dst: std::min
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:243,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:244,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - auto::length
    - ::testing::PrintToString
    - auto::resize
    - std::min
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:255,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:256,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:270,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:272,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:276,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DEATH
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixDeathTest, AsymmetricalDeathTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:324,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:331,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:332,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:333,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:336,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:338,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:340,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - exit
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - Buffer::getSize
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:353,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEmptyIsBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesTotal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:386,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:389,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ASSERT_THROW
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesForLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCodeSymbolOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - genHTCount
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCounts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:423,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:425,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:426,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:428,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:430,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:432,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:435,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:436,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:439,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:441,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:442,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 448
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - HuffmanCode::setCodeValues
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - std::vector::resize
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:451,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:455,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:461,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:465,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:467,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setCodeValuesValueLessThan16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHTFull
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, EqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: rawspeed_test::SignExtendTest::SignExtendTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignExtendTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:494,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:496,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:497,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: rawspeed_test::SignExtendTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:581,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SignExtendTest, SignExtendTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void generateCodeSymbolsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:594,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:596,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:597,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: rawspeed_test::generateCodeSymbolsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:641,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:643,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:646,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:648,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    - Dst: HuffmanCode::generateCodeSymbols
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - HuffmanCode::setCodeValues
    - HuffmanCode::generateCodeSymbols
    - size
    - HuffmanCode::setNCodesPerLength
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - rawspeed_test::data
    linkageType: ''
    returnType: void
    signature: void TEST_P(generateCodeSymbolsTest, generateCodeSymbolsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:84,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:85,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:87,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    - Dst: s
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - s
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeCodeSymbolTest, Equality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:94,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:95,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:96,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:97,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:98,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:99,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:101,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolDeathTest, CodeSymbolLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:111,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:113,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:114,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed_test::CodeSymbolDeathTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:138,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:140,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:141,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:143,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:147,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:149,1
    - Dst: "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:150,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:152,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:153,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::ExitedWithCode
    - "rawspeed::implicit_cast<\n                  typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolDeathTest, CodeSymbolDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolPrintTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:166,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:168,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:169,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed_test::CodeSymbolPrintTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:190,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: rawspeed::AbstractPrefixCode::CodeSymbol
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:191,1
    - Dst: "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:192,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - "rawspeed::implicit_cast<\n              typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>"
    - rawspeed::implicit_cast<uint8_t>
    - rawspeed::AbstractPrefixCode::CodeSymbol
    - ::testing::PrintToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolPrintTest, CodeSymbolPrintTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbolHaveCommonPrefixTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:206,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:208,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:222,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:225,1
    - Dst: assert
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (allVariants.size() == expectedCnt)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: rawspeed_test::GenerateAllPossibleCodeSymbols
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::reserve
    - std::vector::size
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol>
    signature: std::vector<HuffmanCode<BaselineCodeTag>::CodeSymbol> GenerateAllPossibleCodeSymbols()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:239,1
    - Dst: ::testing::PrintToString
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:240,1
    - Dst: std::min
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::length
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:241,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:243,1
    - Dst: auto::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:244,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - auto::length
    - ::testing::PrintToString
    - auto::resize
    - std::min
    linkageType: ''
    returnType: void
    signature: void TEST_P(CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:255,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:256,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:258,1
    - Dst: ASSERT_TRUE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:260,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:262,1
    - Dst: ASSERT_FALSE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:270,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:272,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:276,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_DEATH
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    linkageType: ''
    returnType: void
    signature: void TEST(CodeSymbolHaveCommonPrefixDeathTest, AsymmetricalDeathTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:322,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:324,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:325,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:326,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:327,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:331,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:332,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:333,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:336,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:338,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:340,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - exit
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - Buffer::getSize
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:353,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:356,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:357,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:358,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:359,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:360,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:361,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:363,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:364,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:365,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:366,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 368
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:371,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:372,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthEmptyIsBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:377,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesTotal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:386,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:387,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:389,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:390,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ASSERT_THROW
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthTooManyCodesForLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:398,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:399,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:400,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:401,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:402,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:403,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:404,1
    - Dst: ASSERT_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHT
    - ASSERT_NO_THROW
    - ASSERT_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCodeSymbolOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:409,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:410,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:411,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:412,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:413,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:414,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    - Dst: genHTCount
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - genHTCount
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setNCodesPerLengthCounts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:423,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:424,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:425,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:426,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:428,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:430,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:432,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:433,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:435,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:436,1
    - Dst: ASSERT_EXIT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:439,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:441,1
    - Dst: exit
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:442,1
    - Dst: ::testing::ExitedWithCode
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 448
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - HuffmanCode::setCodeValues
    - rawspeed::implicit_cast<uint8_t>
    - exit
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ::testing::ExitedWithCode
    - std::vector::resize
    - ASSERT_DEATH
    - ASSERT_EXIT
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:451,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:454,1
    - Dst: ASSERT_DEATH
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:455,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genHT
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:461,1
    - Dst: rawspeed::implicit_cast<uint8_t>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:465,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:467,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:468,1
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    - Dst: auto::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint8_t>
    - auto::setCodeValues
    - genHT
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - ASSERT_NO_THROW
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, setCodeValuesValueLessThan16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:474,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:475,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:477,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:478,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:479,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:481,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:482,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:484,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:485,1
    - Dst: ASSERT_NE
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    - Dst: genHTFull
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: rawspeed_test::TEST
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - genHTFull
    - ASSERT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(HuffmanCodeTest, EqualCompareAndTrimming)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: rawspeed_test::SignExtendTest::SignExtendTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignExtendTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:494,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:496,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:497,1
    - Dst: std::get<2>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: rawspeed_test::SignExtendTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - std::get<2>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:581,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SignExtendTest, SignExtendTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void generateCodeSymbolsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:594,1
    - Dst: std::get<0>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:596,1
    - Dst: resize
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:597,1
    - Dst: std::get<1>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: rawspeed_test::generateCodeSymbolsTest::SetUp
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed_test::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:641,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:642,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:643,1
    - Dst: std::vector::data
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:646,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: std::vector::size
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:647,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:648,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    - Dst: HuffmanCode::generateCodeSymbols
      Src: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: rawspeed_test::TEST_P
    functionSourceFile: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_EQ
    - HuffmanCode::setCodeValues
    - HuffmanCode::generateCodeSymbols
    - size
    - HuffmanCode::setNCodesPerLength
    - std::vector::size
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - rawspeed_test::data
    linkageType: ''
    returnType: void
    signature: void TEST_P(generateCodeSymbolsTest, generateCodeSymbolsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ThrowFIE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIOException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowFIE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ThrowFIE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIOException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowFIE(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:39,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/io/Endianness.h
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: rawspeed::getHostEndiannessRuntime
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - assert
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: Endianness
    signature: Endianness getHostEndiannessRuntime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getHostEndiannessRuntime
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::getHostEndianness
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getHostEndiannessRuntime
    linkageType: ''
    returnType: Endianness
    signature: Endianness getHostEndianness()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: BSWAP16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP16(A)
  - 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: BSWAP32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: BSWAP64
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP64(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: BSWAP16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP16(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: BSWAP32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(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: BSWAP64
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP64(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t getByteSwapped(int8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getByteSwapped(uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    - Dst: BSWAP16
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<int16_t>
    - BSWAP16
    linkageType: ''
    returnType: int16_t
    signature: int16_t getByteSwapped(int16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP16
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - BSWAP16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getByteSwapped(uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    - Dst: BSWAP32
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    - BSWAP32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: int32_t
    signature: int32_t getByteSwapped(int32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP32
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - BSWAP32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getByteSwapped(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP64
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - BSWAP64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getByteSwapped(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:90,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:91,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 1
    functionsReached:
    - std::bit_cast<uint32_t>
    - rawspeed::getByteSwapped
    - std::bit_cast<float>
    linkageType: ''
    returnType: float
    signature: float getByteSwapped(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:95,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:96,1
    - Dst: std::bit_cast<double>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached:
    - std::bit_cast<double>
    - std::bit_cast<uint64_t>
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: double
    signature: double getByteSwapped(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:105,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 3
    functionsReached:
    - memcpy
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getByteSwapped(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:117,1
    - Dst: rawspeed::getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: rawspeed::getBE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getHostEndianness
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getBE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:121,1
    - Dst: rawspeed::getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: rawspeed::getLE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getHostEndianness
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getLE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: rawspeed::getU16BE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getBE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16BE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getLE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: rawspeed::getU16LE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getLE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16LE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: rawspeed::getU32BE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32BE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getLE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: rawspeed::getU32LE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32LE(const void* data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:39,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/io/Endianness.h
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: rawspeed::getHostEndiannessRuntime
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 1
    functionsReached:
    - assert
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: Endianness
    signature: Endianness getHostEndiannessRuntime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getHostEndiannessRuntime
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::getHostEndianness
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached:
    - rawspeed::getHostEndiannessRuntime
    linkageType: ''
    returnType: Endianness
    signature: Endianness getHostEndianness()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: BSWAP16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP16(A)
  - 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: BSWAP32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: BSWAP64
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP64(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: BSWAP16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP16(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: BSWAP32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(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: BSWAP64
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP64(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t getByteSwapped(int8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getByteSwapped(uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    - Dst: BSWAP16
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<int16_t>
    - BSWAP16
    linkageType: ''
    returnType: int16_t
    signature: int16_t getByteSwapped(int16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP16
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached:
    - BSWAP16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getByteSwapped(uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    - Dst: BSWAP32
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached:
    - static_cast<int32_t>
    - BSWAP32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: int32_t
    signature: int32_t getByteSwapped(int32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP32
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached:
    - BSWAP32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getByteSwapped(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP64
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 5
    functionsReached:
    - BSWAP64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getByteSwapped(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:90,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:91,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 6
    functionsReached:
    - std::bit_cast<uint32_t>
    - rawspeed::getByteSwapped
    - std::bit_cast<float>
    linkageType: ''
    returnType: float
    signature: float getByteSwapped(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:95,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:96,1
    - Dst: std::bit_cast<double>
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 7
    functionsReached:
    - std::bit_cast<double>
    - std::bit_cast<uint64_t>
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: double
    signature: double getByteSwapped(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:105,1
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - bswap
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: rawspeed::getByteSwapped
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 8
    functionsReached:
    - memcpy
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getByteSwapped(const void* data, bool bswap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:117,1
    - Dst: rawspeed::getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: rawspeed::getBE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached:
    - rawspeed::getHostEndianness
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getBE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getByteSwapped
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:121,1
    - Dst: rawspeed::getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: rawspeed::getLE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 2
    functionsReached:
    - rawspeed::getHostEndianness
    - rawspeed::getByteSwapped
    linkageType: ''
    returnType: T
    signature: T getLE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: rawspeed::getU16BE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getBE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16BE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getLE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: rawspeed::getU16LE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getLE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16LE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: rawspeed::getU32BE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getBE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32BE(const void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getLE
      Src: /src/librawspeed/src/librawspeed/io/Endianness.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: rawspeed::getU32LE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Endianness.h
    functionUses: 0
    functionsReached:
    - rawspeed::getLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32LE(const void* data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:36,1
    - Dst: std::bind
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:40,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:44,1
    - Dst: std::wstring::resize
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:45,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:48,1
    - Dst: std::wstring::size
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:48,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts:
    - condition: (fileName)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librawspeed/src/librawspeed/io/FileIO.h
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: rawspeed::widenFileName
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIO.h
    functionUses: 0
    functionsReached:
    - std::bind
    - std::wstring::size
    - std::wstring::resize
    - f
    - assert
    - ThrowFIE
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring widenFileName(const char* fileName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:36,1
    - Dst: std::bind
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:40,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:44,1
    - Dst: std::wstring::resize
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:45,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:48,1
    - Dst: std::wstring::size
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:48,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileIO.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts:
    - condition: (fileName)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librawspeed/src/librawspeed/io/FileIO.h
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: rawspeed::widenFileName
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIO.h
    functionUses: 0
    functionsReached:
    - std::bind
    - std::wstring::size
    - std::wstring::resize
    - f
    - assert
    - ThrowFIE
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring widenFileName(const char* fileName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::FileWriter::Filename
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * Filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::FileWriter::Filename
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * Filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::FileIOException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIOException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIOException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::FileIOException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileIOException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIOException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::FileWriter::FileWriter
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileWriter::FileWriter(const char* _filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:44,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:44,1
    - Dst: fopen
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:49,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:51,1
    - Dst: fwrite
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: fclose
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:55,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:57,1
    - Dst: widenFileName
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:61,1
    - Dst: CreateFileW
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:64,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:64,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:67,1
    - Dst: WriteFile
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: CloseHandle
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:73,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:74,1
    - Dst: CloseHandle
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - filemap
    - size
    argTypes:
    - Buffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 79
    functionName: rawspeed::FileWriter::writeFile
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - fopen
    - widenFileName
    - WriteFile
    - Buffer::getSize
    - auto::data
    - fclose
    - CloseHandle
    - fwrite
    - ThrowFIE
    - CreateFileW
    - std::min
    linkageType: ''
    returnType: void
    signature: void FileWriter::writeFile(Buffer filemap, uint32_t size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::FileWriter::FileWriter
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileWriter::FileWriter(const char* _filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:44,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:44,1
    - Dst: fopen
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:49,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:51,1
    - Dst: fwrite
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:54,1
    - Dst: fclose
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:55,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:57,1
    - Dst: widenFileName
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:61,1
    - Dst: CreateFileW
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:64,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:64,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:67,1
    - Dst: WriteFile
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:71,1
    - Dst: CloseHandle
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:73,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:74,1
    - Dst: CloseHandle
      Src: /src/librawspeed/src/librawspeed/io/FileWriter.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - filemap
    - size
    argTypes:
    - Buffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 79
    functionName: rawspeed::FileWriter::writeFile
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileWriter.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - fopen
    - widenFileName
    - WriteFile
    - Buffer::getSize
    - auto::data
    - fclose
    - CloseHandle
    - fwrite
    - ThrowFIE
    - CreateFileW
    - std::min
    linkageType: ''
    returnType: void
    signature: void FileWriter::writeFile(Buffer filemap, uint32_t size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::IOException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/io/IOException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::IOException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/io/IOException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IOException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:62,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:62,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:63,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:64,1
    - Dst: rawspeed::ASan::RegionIsPoisoned
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data_
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts:
    - condition: (!ASan::RegionIsPoisoned(data, size))
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    - condition: (data)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::ASan::RegionIsPoisoned
    - assert
    - Array1DRef<const uint8_t>::size
    - Array1DRef<const uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void Buffer(Array1DRef<const uint8_t> data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:68,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data_
    - size_
    argTypes:
    - uint8_t*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - implicit_cast<int>
    - Array1DRef
    linkageType: ''
    returnType: void
    signature: void Buffer(const uint8_t* data_, size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: rawspeed::Buffer::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - implicit_cast<int>
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: operator Array1DRef<const uint8_t>() const
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::getAsArray1DRef
    linkageType: ''
    returnType: void
    signature: void operator Array1DRef<const uint8_t>() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::isValid
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:79,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:80,1
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - offset
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: rawspeed::Buffer::getSubView
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - ThrowIOE
    - rawspeed::Buffer::getAsArray1DRef
    - rawspeed::Buffer::isValid
    linkageType: ''
    returnType: Buffer
    signature: Buffer getSubView(size_type offset, size_type size_) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::isValid
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:86,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:87,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:89,1
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: rawspeed::Buffer::getSubView
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 1
    functionsReached:
    - ThrowIOE
    - rawspeed::Buffer::getSize
    - rawspeed::Buffer::getSubView
    - rawspeed::Buffer::isValid
    linkageType: ''
    returnType: Buffer
    signature: Buffer getSubView(size_type offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: operator[](size_type offset) const
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t operator[](size_type offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: rawspeed::Buffer::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::Buffer::end
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:110,1
    - Dst: static_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:110,1
    - Dst: static_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:111,1
    - Dst: getByteSwapped<T>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:112,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inNativeByteOrder
    - offset
    argTypes:
    - bool
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: rawspeed::Buffer::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getSubView
    - getByteSwapped<T>
    - Buffer::begin
    - static_cast<size_type>
    linkageType: ''
    returnType: T
    signature: "T get(bool inNativeByteOrder, size_type offset,\n                      size_type
      index = 0) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed::Buffer::getSize
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:118,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:119,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: rawspeed::Buffer::isValid
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 2
    functionsReached:
    - rawspeed::Buffer::getSize
    - static_cast<uint64_t>
    linkageType: ''
    returnType: bool
    signature: bool isValid(size_type offset, size_type count = 1) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Buffer
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: operator<(Buffer lhs, Buffer rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - Buffer::end
    - Buffer::begin
    - std::pair
    linkageType: ''
    returnType: bool
    signature: bool operator<(Buffer lhs, Buffer rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: rawspeed::DataBuffer::DataBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data_
    - endianness_
    argTypes:
    - Buffer
    - Endianness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: rawspeed::DataBuffer::DataBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer(Buffer data_, Endianness endianness_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:148,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:149,1
    - Dst: Buffer::get<T>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:151,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts:
    - condition: (Endianness::unknown != endianness)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    - condition: (Endianness::little == endianness || Endianness::big == endianness)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: rawspeed::DataBuffer::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - getHostEndianness
    - assert
    - Buffer::get<T>
    linkageType: ''
    returnType: T
    signature: T get(size_type offset, size_type index = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: rawspeed::DataBuffer::getByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Endianness
    signature: Endianness getByteOrder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - endianness_
    argTypes:
    - Endianness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: rawspeed::DataBuffer::setByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: Endianness
    signature: Endianness setByteOrder(Endianness endianness_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:62,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:62,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:63,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:64,1
    - Dst: rawspeed::ASan::RegionIsPoisoned
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data_
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts:
    - condition: (!ASan::RegionIsPoisoned(data, size))
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    - condition: (data)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::ASan::RegionIsPoisoned
    - assert
    - Array1DRef<const uint8_t>::size
    - Array1DRef<const uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void Buffer(Array1DRef<const uint8_t> data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:68,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data_
    - size_
    argTypes:
    - uint8_t*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: rawspeed::Buffer::Buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - implicit_cast<int>
    - Array1DRef
    linkageType: ''
    returnType: void
    signature: void Buffer(const uint8_t* data_, size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: rawspeed::Buffer::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 3
    functionsReached:
    - implicit_cast<int>
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: operator Array1DRef<const uint8_t>() const
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - getAsArray1DRef
    linkageType: ''
    returnType: void
    signature: void operator Array1DRef<const uint8_t>() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::isValid
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:79,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:80,1
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - offset
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: rawspeed::Buffer::getSubView
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 2
    functionsReached:
    - ThrowIOE
    - rawspeed::Buffer::getAsArray1DRef
    - rawspeed::Buffer::isValid
    linkageType: ''
    returnType: Buffer
    signature: Buffer getSubView(size_type offset, size_type size_) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::isValid
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:86,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:87,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:89,1
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: rawspeed::Buffer::getSubView
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 3
    functionsReached:
    - ThrowIOE
    - rawspeed::Buffer::getSize
    - rawspeed::Buffer::getSubView
    - rawspeed::Buffer::isValid
    linkageType: ''
    returnType: Buffer
    signature: Buffer getSubView(size_type offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: operator[](size_type offset) const
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t operator[](size_type offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: rawspeed::Buffer::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::Buffer::end
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getAsArray1DRef
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:110,1
    - Dst: static_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:110,1
    - Dst: static_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:111,1
    - Dst: getByteSwapped<T>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:112,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inNativeByteOrder
    - offset
    argTypes:
    - bool
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: rawspeed::Buffer::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getSubView
    - getByteSwapped<T>
    - Buffer::begin
    - static_cast<size_type>
    linkageType: ''
    returnType: T
    signature: "T get(bool inNativeByteOrder, size_type offset,\n                      size_type
      index = 0) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed::Buffer::getSize
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:118,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:119,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: rawspeed::Buffer::isValid
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 4
    functionsReached:
    - rawspeed::Buffer::getSize
    - static_cast<uint64_t>
    linkageType: ''
    returnType: bool
    signature: bool isValid(size_type offset, size_type count = 1) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Buffer
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: operator<(Buffer lhs, Buffer rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - Buffer::end
    - Buffer::begin
    - std::pair
    linkageType: ''
    returnType: bool
    signature: bool operator<(Buffer lhs, Buffer rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: rawspeed::DataBuffer::DataBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data_
    - endianness_
    argTypes:
    - Buffer
    - Endianness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: rawspeed::DataBuffer::DataBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer(Buffer data_, Endianness endianness_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:148,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:149,1
    - Dst: Buffer::get<T>
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:151,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts:
    - condition: (Endianness::unknown != endianness)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    - condition: (Endianness::little == endianness || Endianness::big == endianness)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: rawspeed::DataBuffer::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - getHostEndianness
    - assert
    - Buffer::get<T>
    linkageType: ''
    returnType: T
    signature: T get(size_type offset, size_type index = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: rawspeed::DataBuffer::getByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Endianness
    signature: Endianness getByteOrder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/io/Buffer.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - endianness_
    argTypes:
    - Endianness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: rawspeed::DataBuffer::setByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/io/Buffer.h
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: Endianness
    signature: Endianness setByteOrder(Endianness endianness_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ThrowIOE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/IOException.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowIOE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ThrowIOE
    functionSourceFile: /src/librawspeed/src/librawspeed/io/IOException.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowIOE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::ByteStream::ByteStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: rawspeed::ByteStream::ByteStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteStream(DataBuffer buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::ByteStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: getByteOrder
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed::ByteStream::getSubStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - getByteOrder
    - getSubView
    - rawspeed::ByteStream::ByteStream
    - DataBuffer
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getSubStream(size_type offset,\n                                        size_type
      size_) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::ByteStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: getByteOrder
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: rawspeed::ByteStream::getSubStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - getByteOrder
    - getSubView
    - rawspeed::ByteStream::ByteStream
    - DataBuffer
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getSubStream(size_type offset) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:64,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:65,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:66,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:67,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:67,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: rawspeed::ASan::RegionIsPoisoned
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_type
    assertStmts:
    - condition: (tmp.getSize() == bytes)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    - condition: (!ASan::RegionIsPoisoned(tmp.begin(), tmp.getSize()))
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: rawspeed::ByteStream::check
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ASan::RegionIsPoisoned
    - Buffer::getSize
    - ThrowIOE
    - assert
    - getSubView
    - Buffer::begin
    - isValid
    linkageType: ''
    returnType: size_type
    signature: size_type check(size_type bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:73,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:74,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rawspeed::ByteStream::check
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: size_type
    signature: size_type check(size_type nmemb, size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:79,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:79,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: rawspeed::ByteStream::getPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    - invariant
    - getSize
    linkageType: ''
    returnType: size_type
    signature: size_type getPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newPos
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: rawspeed::ByteStream::setPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void setPosition(size_type newPos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:88,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:88,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:89,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: rawspeed::ByteStream::getRemainSize
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    - invariant
    - getSize
    linkageType: ''
    returnType: void
    signature: void getRemainSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed::ByteStream::peekData
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::Buffer::getSubView
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * peekData(size_type count) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: rawspeed::ByteStream::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peekData
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * getData(size_type count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: rawspeed::ByteStream::peekBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - getSubView
    linkageType: ''
    returnType: Buffer
    signature: Buffer peekBuffer(size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: rawspeed::ByteStream::getBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peekBuffer
    linkageType: ''
    returnType: Buffer
    signature: Buffer getBuffer(size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:109,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: rawspeed::ByteStream::peekRemainingBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - getSubView
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: Buffer
    signature: Buffer peekRemainingBuffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: rawspeed::ByteStream::peekStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::getSubStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream peekStream(size_type size_) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:115,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:116,1
    - Dst: rawspeed::ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed::ByteStream::peekStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::peekStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream peekStream(size_type nmemb, size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: rawspeed::ByteStream::getStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peekStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getStream(size_type size_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:125,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:126,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: rawspeed::ByteStream::getStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::getStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getStream(size_type nmemb, size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: rawspeed::ByteStream::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void skipBytes(size_type nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: rawspeed::ByteStream::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void skipBytes(size_type nmemb, size_type size_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: implicit_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: implicit_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: auto::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: std::equal
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: std::string_view::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pattern
    - relPos
    argTypes:
    - std::string_view
    - size_type
    assertStmts:
    - condition: (tmp.getSize() == pattern.size())
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: rawspeed::ByteStream::hasPatternAt
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - auto::getSize
    - std::equal
    - auto::end
    - std::string_view::begin
    - std::string_view::size
    - auto::begin
    - getSubView
    - assert
    - implicit_cast<size_type>
    - isValid
    linkageType: ''
    returnType: bool
    signature: "bool hasPatternAt(std::string_view pattern,\n                                  size_type
      relPos) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: rawspeed::ByteStream::hasPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::hasPatternAt
    linkageType: ''
    returnType: bool
    signature: bool hasPrefix(std::string_view prefix) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:150,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: rawspeed::ByteStream::skipPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::hasPrefix
    - std::string_view::size
    linkageType: ''
    returnType: bool
    signature: bool skipPrefix(std::string_view prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer::get<T>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: rawspeed::ByteStream::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - DataBuffer::get<T>
    linkageType: ''
    returnType: T
    signature: T peek(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: rawspeed::ByteStream::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: T
    signature: T get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:167,1
    - Dst: std::generate
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:169,1
    - Dst: auto::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed::ByteStream::getArray
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - auto::get
    - std::generate
    - std::array::begin
    - std::array::end
    - rawspeed::ByteStream::getStream
    - invariant
    - auto::getRemainSize
    linkageType: ''
    returnType: std::array<T, N>
    signature: std::array<T, N> getArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:175,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:176,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:177,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:177,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:178,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:179,1
    - Dst: auto::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nElt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: rawspeed::ByteStream::getVector
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - auto::get
    - std::vector::reserve
    - rawspeed::ByteStream::getStream
    - std::back_inserter
    - invariant
    - auto::getRemainSize
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> getVector(int nElt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: rawspeed::ByteStream::peekByte
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t peekByte(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: rawspeed::ByteStream::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getByte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: rawspeed::ByteStream::peekU16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peekU16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed::ByteStream::peekU32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peekU32(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: rawspeed::ByteStream::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: rawspeed::ByteStream::getI32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: int32_t
    signature: int32_t getI32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: rawspeed::ByteStream::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: rawspeed::ByteStream::getFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: float
    signature: float getFloat()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:200,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:200,1
    - Dst: std::find
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:202,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:203,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:204,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:204,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:205,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: rawspeed::ByteStream::peekString
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - std::distance
    - reinterpret_cast<const char*>
    - ThrowIOE
    - Buffer::end
    - std::find
    - rawspeed::ByteStream::peekBuffer
    - rawspeed::ByteStream::getRemainSize
    - Buffer::begin
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view peekString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekString
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:211,1
    - Dst: rawspeed::ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: rawspeed::ByteStream::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - std::string_view::size
    - rawspeed::ByteStream::peekString
    - implicit_cast<Buffer::size_type>
    - rawspeed::ByteStream::skipBytes
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view getString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::ByteStream::ByteStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: rawspeed::ByteStream::ByteStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteStream(DataBuffer buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::ByteStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    - Dst: getByteOrder
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rawspeed::ByteStream::getSubStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - getByteOrder
    - getSubView
    - rawspeed::ByteStream::ByteStream
    - DataBuffer
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getSubStream(size_type offset,\n                                        size_type
      size_) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::ByteStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    - Dst: getByteOrder
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: rawspeed::ByteStream::getSubStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - getByteOrder
    - getSubView
    - rawspeed::ByteStream::ByteStream
    - DataBuffer
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getSubStream(size_type offset) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:64,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:65,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:66,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:67,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:67,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: rawspeed::ASan::RegionIsPoisoned
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_type
    assertStmts:
    - condition: (tmp.getSize() == bytes)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    - condition: (!ASan::RegionIsPoisoned(tmp.begin(), tmp.getSize()))
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: rawspeed::ByteStream::check
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 6
    functionsReached:
    - rawspeed::ASan::RegionIsPoisoned
    - Buffer::getSize
    - ThrowIOE
    - assert
    - getSubView
    - Buffer::begin
    - isValid
    linkageType: ''
    returnType: size_type
    signature: size_type check(size_type bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:73,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:74,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rawspeed::ByteStream::check
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 7
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: size_type
    signature: size_type check(size_type nmemb, size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:79,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:79,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: rawspeed::ByteStream::getPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    - invariant
    - getSize
    linkageType: ''
    returnType: size_type
    signature: size_type getPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newPos
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: rawspeed::ByteStream::setPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void setPosition(size_type newPos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:88,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:88,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:89,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: rawspeed::ByteStream::getRemainSize
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::check
    - invariant
    - getSize
    linkageType: ''
    returnType: void
    signature: void getRemainSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: rawspeed::ByteStream::peekData
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - rawspeed::Buffer::getSubView
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * peekData(size_type count) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: rawspeed::ByteStream::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peekData
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * getData(size_type count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: rawspeed::ByteStream::peekBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 2
    functionsReached:
    - getSubView
    linkageType: ''
    returnType: Buffer
    signature: Buffer peekBuffer(size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: rawspeed::ByteStream::getBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peekBuffer
    linkageType: ''
    returnType: Buffer
    signature: Buffer getBuffer(size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:109,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: rawspeed::ByteStream::peekRemainingBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - getSubView
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: Buffer
    signature: Buffer peekRemainingBuffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: rawspeed::ByteStream::peekStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getSubStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream peekStream(size_type size_) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:115,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:116,1
    - Dst: rawspeed::ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rawspeed::ByteStream::peekStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 3
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::peekStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream peekStream(size_type nmemb, size_type size_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size_
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: rawspeed::ByteStream::getStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 3
    functionsReached:
    - rawspeed::ByteStream::peekStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getStream(size_type size_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:125,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:126,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: rawspeed::ByteStream::getStream
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 4
    functionsReached:
    - ThrowIOE
    - std::numeric_limits<size_type>::max
    - rawspeed::ByteStream::getStream
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getStream(size_type nmemb, size_type size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: rawspeed::ByteStream::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void skipBytes(size_type nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nmemb
    - size_
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: rawspeed::ByteStream::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - rawspeed::ByteStream::check
    linkageType: ''
    returnType: void
    signature: void skipBytes(size_type nmemb, size_type size_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: implicit_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:137,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: implicit_cast<size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:140,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: auto::getSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:141,1
    - Dst: std::equal
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    - Dst: std::string_view::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pattern
    - relPos
    argTypes:
    - std::string_view
    - size_type
    assertStmts:
    - condition: (tmp.getSize() == pattern.size())
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: rawspeed::ByteStream::hasPatternAt
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - auto::getSize
    - std::equal
    - auto::end
    - std::string_view::begin
    - std::string_view::size
    - auto::begin
    - getSubView
    - assert
    - implicit_cast<size_type>
    - isValid
    linkageType: ''
    returnType: bool
    signature: "bool hasPatternAt(std::string_view pattern,\n                                  size_type
      relPos) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: rawspeed::ByteStream::hasPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - rawspeed::ByteStream::hasPatternAt
    linkageType: ''
    returnType: bool
    signature: bool hasPrefix(std::string_view prefix) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:150,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: rawspeed::ByteStream::skipPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::hasPrefix
    - std::string_view::size
    linkageType: ''
    returnType: bool
    signature: bool skipPrefix(std::string_view prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer::get<T>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: rawspeed::ByteStream::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 4
    functionsReached:
    - DataBuffer::get<T>
    linkageType: ''
    returnType: T
    signature: T peek(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: rawspeed::ByteStream::get
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 5
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: T
    signature: T get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:167,1
    - Dst: std::generate
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:168,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:169,1
    - Dst: auto::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: rawspeed::ByteStream::getArray
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - auto::get
    - std::generate
    - std::array::begin
    - std::array::end
    - rawspeed::ByteStream::getStream
    - invariant
    - auto::getRemainSize
    linkageType: ''
    returnType: std::array<T, N>
    signature: std::array<T, N> getArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:175,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:176,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:177,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:177,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:178,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:179,1
    - Dst: auto::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nElt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: rawspeed::ByteStream::getVector
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - auto::get
    - std::vector::reserve
    - rawspeed::ByteStream::getStream
    - std::back_inserter
    - invariant
    - auto::getRemainSize
    - std::generate_n
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> getVector(int nElt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: rawspeed::ByteStream::peekByte
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t peekByte(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: rawspeed::ByteStream::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getByte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: rawspeed::ByteStream::peekU16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peekU16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peek
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: rawspeed::ByteStream::peekU32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::peek
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peekU32(size_type i = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: rawspeed::ByteStream::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getU16()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: rawspeed::ByteStream::getI32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: int32_t
    signature: int32_t getI32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: rawspeed::ByteStream::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getU32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: rawspeed::ByteStream::getFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::ByteStream::get
    linkageType: ''
    returnType: float
    signature: float getFloat()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekBuffer
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:200,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:200,1
    - Dst: std::find
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:201,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:202,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:203,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:204,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:204,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:205,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: rawspeed::ByteStream::peekString
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 1
    functionsReached:
    - std::distance
    - reinterpret_cast<const char*>
    - ThrowIOE
    - Buffer::end
    - std::find
    - rawspeed::ByteStream::peekBuffer
    - rawspeed::ByteStream::getRemainSize
    - Buffer::begin
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view peekString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ByteStream::peekString
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:211,1
    - Dst: rawspeed::ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/io/ByteStream.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: rawspeed::ByteStream::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/io/ByteStream.h
    functionUses: 0
    functionsReached:
    - std::string_view::size
    - rawspeed::ByteStream::peekString
    - implicit_cast<Buffer::size_type>
    - rawspeed::ByteStream::skipBytes
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view getString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fileName_
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: rawspeed::FileReader::FileReader
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileReader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileReader(const char* fileName_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fileName_
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: rawspeed::FileReader::FileReader
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileReader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileReader(const char* fileName_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::fclose
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:56,1
    - Dst: fopen
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:58,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:61,1
    - Dst: fseek
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:63,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:63,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:64,1
    - Dst: ftell
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:66,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:66,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:68,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:71,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:73,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:74,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:75,1
    - Dst: fseek
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:79,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:79,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:80,1
    - Dst: "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
        AlignedAllocator<uint8_t, 16>>>>"
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:82,1
    - Dst: fread
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: ferror
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:88,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:88,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:89,1
    - Dst: feof
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:90,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:90,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:91,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:93,1
    - Dst: widenFileName
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:97,1
    - Dst: CreateFileW
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:101,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:101,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:106,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:107,1
    - Dst: GetFileSizeEx
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:110,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:110,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:113,1
    - Dst: std::numeric_limits<decltype(size.LowPart)>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:114,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:118,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:120,1
    - Dst: "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
        AlignedAllocator<uint8_t, 16>>>>"
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:122,1
    - Dst: ReadFile
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:129,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:132,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:138,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 140
    functionName: rawspeed::FileReader::readFile
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileReader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Buffer
    - widenFileName
    - "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
      AlignedAllocator<uint8_t, 16>>>>"
    - ThrowFIE
    - file_ptr::get
    - fopen
    - fseek
    - feof
    - implicit_cast<Buffer::size_type>
    - GetFileSizeEx
    - ftell
    - auto::data
    - CreateFileW
    - ReadFile
    - std::move
    - std::fclose
    - std::numeric_limits<decltype(size.LowPart)>::max
    - std::numeric_limits<Buffer::size_type>::max
    - ferror
    - fread
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<std::vector<\n              uint8_t, DefaultInitAllocatorAdaptor<\n
      \                          uint8_t, AlignedAllocator<uint8_t, 16>>>>,\n          Buffer>"
    signature: "std::pair<std::unique_ptr<std::vector<\n              uint8_t, DefaultInitAllocatorAdaptor<\n
      \                          uint8_t, AlignedAllocator<uint8_t, 16>>>>,\n          Buffer>
      FileReader::readFile() const"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::fclose
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:56,1
    - Dst: fopen
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:58,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:61,1
    - Dst: fseek
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:63,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:63,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:64,1
    - Dst: ftell
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:66,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:66,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:68,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:71,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:73,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:74,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:75,1
    - Dst: fseek
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:79,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:79,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:80,1
    - Dst: "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
        AlignedAllocator<uint8_t, 16>>>>"
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:82,1
    - Dst: fread
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:87,1
    - Dst: ferror
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:88,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:88,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:89,1
    - Dst: feof
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:90,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:90,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:91,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:93,1
    - Dst: widenFileName
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:97,1
    - Dst: CreateFileW
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:101,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:101,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:106,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:107,1
    - Dst: GetFileSizeEx
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:110,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:110,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:113,1
    - Dst: std::numeric_limits<decltype(size.LowPart)>::max
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:114,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:118,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:120,1
    - Dst: "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
        AlignedAllocator<uint8_t, 16>>>>"
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:122,1
    - Dst: ReadFile
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:128,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:129,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:132,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:138,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/FileReader.cpp:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 140
    functionName: rawspeed::FileReader::readFile
    functionSourceFile: /src/librawspeed/src/librawspeed/io/FileReader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Buffer
    - widenFileName
    - "std::make_unique<std::vector<\n      uint8_t,\n      DefaultInitAllocatorAdaptor<uint8_t,
      AlignedAllocator<uint8_t, 16>>>>"
    - ThrowFIE
    - file_ptr::get
    - fopen
    - fseek
    - feof
    - implicit_cast<Buffer::size_type>
    - GetFileSizeEx
    - ftell
    - auto::data
    - CreateFileW
    - ReadFile
    - std::move
    - std::fclose
    - std::numeric_limits<decltype(size.LowPart)>::max
    - std::numeric_limits<Buffer::size_type>::max
    - ferror
    - fread
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<std::vector<\n              uint8_t, DefaultInitAllocatorAdaptor<\n
      \                          uint8_t, AlignedAllocator<uint8_t, 16>>>>,\n          Buffer>"
    signature: "std::pair<std::unique_ptr<std::vector<\n              uint8_t, DefaultInitAllocatorAdaptor<\n
      \                          uint8_t, AlignedAllocator<uint8_t, 16>>>>,\n          Buffer>
      FileReader::readFile() const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:39,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:39,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:42,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:42,1
    - Dst: fstat
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:45,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:46,1
    - Dst: mmap
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:50,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' fname'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: rawspeed::MMapReader::MMapReader
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - open
    - mmap
    - ThrowFIE
    - fstat
    - c_str
    linkageType: ''
    returnType: void
    signature: void MMapReader::MMapReader(const std::string& fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:56,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:57,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:58,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:59,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:59,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: rawspeed::MMapReader::getAsBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Array1DRef
    - static_cast<const uint8_t*>
    - std::numeric_limits<Buffer::size_type>::max
    - ThrowFIE
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: Buffer
    signature: Buffer MMapReader::getAsBuffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:64,1
    - Dst: close
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: MMapReader::~MMapReader()
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - close
    - munmap
    linkageType: ''
    returnType: void
    signature: void MMapReader::~MMapReader()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:39,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:39,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:42,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:42,1
    - Dst: fstat
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:45,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:46,1
    - Dst: mmap
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:50,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' fname'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: rawspeed::MMapReader::MMapReader
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - open
    - mmap
    - ThrowFIE
    - fstat
    - c_str
    linkageType: ''
    returnType: void
    signature: void MMapReader::MMapReader(const std::string& fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:56,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:57,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:58,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:59,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:59,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: rawspeed::MMapReader::getAsBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Array1DRef
    - static_cast<const uint8_t*>
    - std::numeric_limits<Buffer::size_type>::max
    - ThrowFIE
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: Buffer
    signature: Buffer MMapReader::getAsBuffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:64,1
    - Dst: close
      Src: /src/librawspeed/src/librawspeed/io/MMapReader.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: MMapReader::~MMapReader()
    functionSourceFile: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
    functionUses: 0
    functionsReached:
    - close
    - munmap
    linkageType: ''
    returnType: void
    signature: void MMapReader::~MMapReader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: ThrowCPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowCPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: ThrowCPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowCPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::TiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::TiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::FiffParser::FiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FiffParser::FiffParser(Buffer inputData)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:48,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:50,1
    - Dst: numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:51,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:52,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:56,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:57,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:58,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:59,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:61,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:61,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:62,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:62,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:64,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:68,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:75,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:78,1
    - Dst: std::make_unique<TiffEntryWithData>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:78,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:79,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:80,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:80,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:82,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:83,1
    - Dst: std::make_unique<TiffEntryWithData>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:83,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:84,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:85,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:85,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:90,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:97,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:97,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:98,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:101,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:104,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:104,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:105,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:123,1
    - Dst: std::make_unique<TiffEntry>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:123,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:124,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:125,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:125,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:127,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:131,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 132
    functionName: rawspeed::FiffParser::parseData
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - auto::get
    - auto::add
    - Buffer
    - getSubView
    - get
    - std::make_unique<TiffEntry>
    - std::make_unique<TiffIFD>
    - rawspeed::TiffParser::parse
    - reinterpret_cast<const uint8_t*>
    - ByteStream::getPosition
    - std::make_unique<TiffEntryWithData>
    - ByteStream::skipBytes
    - ThrowFPE
    - ByteStream::getU32
    - DataBuffer
    - numeric_limits<uint32_t>::max
    - getSize
    - static_cast<TiffTag>
    - ByteStream::getSubStream
    - isValid
    - std::move
    - add
    linkageType: ''
    returnType: void
    signature: void FiffParser::parseData()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FiffParser::parseData
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:136,1
    - Dst: rawspeed::RafDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:142,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:142,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:143,1
    - Dst: std::make_unique<RafDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:145,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:145,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: rawspeed::FiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - rawspeed::RafDecoder::isAppropriateDecoder
    - ThrowFPE
    - std::make_unique<RafDecoder>
    - get
    - rawspeed::FiffParser::parseData
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> FiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::FiffParser::FiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FiffParser::FiffParser(Buffer inputData)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:48,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:50,1
    - Dst: numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:51,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:52,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:56,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:57,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:58,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:59,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:61,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:61,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:62,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:62,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:64,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:68,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:69,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:75,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:78,1
    - Dst: std::make_unique<TiffEntryWithData>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:78,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:79,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:80,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:80,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:82,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:83,1
    - Dst: std::make_unique<TiffEntryWithData>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:83,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:84,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:85,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:85,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:90,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:97,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:97,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:98,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:101,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:104,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:104,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:105,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:123,1
    - Dst: std::make_unique<TiffEntry>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:123,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:124,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:125,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:125,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:127,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:131,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 132
    functionName: rawspeed::FiffParser::parseData
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - auto::get
    - auto::add
    - Buffer
    - getSubView
    - get
    - std::make_unique<TiffEntry>
    - std::make_unique<TiffIFD>
    - rawspeed::TiffParser::parse
    - reinterpret_cast<const uint8_t*>
    - ByteStream::getPosition
    - std::make_unique<TiffEntryWithData>
    - ByteStream::skipBytes
    - ThrowFPE
    - ByteStream::getU32
    - DataBuffer
    - numeric_limits<uint32_t>::max
    - getSize
    - static_cast<TiffTag>
    - ByteStream::getSubStream
    - isValid
    - std::move
    - add
    linkageType: ''
    returnType: void
    signature: void FiffParser::parseData()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FiffParser::parseData
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:136,1
    - Dst: rawspeed::RafDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:142,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:142,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:143,1
    - Dst: std::make_unique<RafDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:145,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:145,1
    - Dst: ThrowFPE
      Src: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: rawspeed::FiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - rawspeed::RafDecoder::isAppropriateDecoder
    - ThrowFPE
    - std::make_unique<RafDecoder>
    - get
    - rawspeed::FiffParser::parseData
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> FiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:47,1
    - Dst: rawspeed::MrwDecoder::isMRW
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:50,1
    - Dst: std::make_unique<MrwDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:52,1
    - Dst: rawspeed::RafDecoder::isRAF
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:60,1
    - Dst: FiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:63,1
    - Dst: TiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:72,1
    - Dst: CiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:80,1
    - Dst: CameraMetaData*::hasChdkCamera
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:86,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:86,1
    - Dst: CameraMetaData*::getChdkCamera
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:87,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:87,1
    - Dst: std::make_unique<NakedDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: rawspeed::RawParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData*::getChdkCamera
    - FiffParser::getDecoder
    - getSize
    - ThrowRDE
    - std::make_unique<NakedDecoder>
    - rawspeed::MrwDecoder::isMRW
    - std::make_unique<MrwDecoder>
    - CameraMetaData*::hasChdkCamera
    - TiffParser::getDecoder
    - CiffParser::getDecoder
    - rawspeed::RafDecoder::isRAF
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> RawParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:47,1
    - Dst: rawspeed::MrwDecoder::isMRW
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:50,1
    - Dst: std::make_unique<MrwDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:52,1
    - Dst: rawspeed::RafDecoder::isRAF
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:60,1
    - Dst: FiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:63,1
    - Dst: TiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:72,1
    - Dst: CiffParser::getDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:80,1
    - Dst: CameraMetaData*::hasChdkCamera
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:86,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:86,1
    - Dst: CameraMetaData*::getChdkCamera
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:87,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:87,1
    - Dst: std::make_unique<NakedDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: rawspeed::RawParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp
    functionUses: 0
    functionsReached:
    - CameraMetaData*::getChdkCamera
    - FiffParser::getDecoder
    - getSize
    - ThrowRDE
    - std::make_unique<NakedDecoder>
    - rawspeed::MrwDecoder::isMRW
    - std::make_unique<MrwDecoder>
    - CameraMetaData*::hasChdkCamera
    - TiffParser::getDecoder
    - CiffParser::getDecoder
    - rawspeed::RafDecoder::isRAF
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> RawParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ThrowTPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowTPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ThrowTPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowTPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowFPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParserException.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowFPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowFPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParserException.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowFPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: ThrowRPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: ThrowRPE
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParserException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRPE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: rawspeed::RawParser::RawParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawParser(Buffer inputData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~RawParser()
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: rawspeed::RawParser::RawParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawParser(Buffer inputData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~RawParser()
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/RawParser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::TiffParser::TiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffParser::TiffParser(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffParser::makeDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:63,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::TiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffParser::parse
    - rawspeed::TiffParser::makeDecoder
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> TiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:68,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:68,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:69,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:71,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:74,1
    - Dst: std::make_unique<TiffRootIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:82,1
    - Dst: auto::getSubIFDs
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:83,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:86,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:94,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:94,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:95,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - parent
    - data
    argTypes:
    - TiffIFD*
    - Buffer
    assertStmts:
    - condition: (subIFD.get())
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: rawspeed::TiffParser::parse
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 3
    functionsReached:
    - ByteStream::getU16
    - auto::get
    - ByteStream::getU32
    - std::unique_ptr::get
    - auto::add
    - std::move
    - ThrowTPE
    - std::make_unique<TiffRootIFD>
    - ByteStream::skipBytes
    - auto::getSubIFDs
    - assert
    - getTiffByteOrder
    - ByteStream::setByteOrder
    - std::make_unique<TiffIFD>
    linkageType: ''
    returnType: TiffRootIFDOwner
    signature: TiffRootIFDOwner TiffParser::parse(TiffIFD* parent, Buffer data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:104,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:110,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:113,1
    - Dst: dChecker
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:115,1
    - Dst: TiffRootIFDOwner::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:115,1
    - Dst: dConstructor
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:118,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:118,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - root
    - data
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts:
    - condition: (dChecker)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    - condition: (dConstructor)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: rawspeed::TiffParser::makeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 1
    functionsReached:
    - dChecker
    - std::move
    - ThrowTPE
    - dConstructor
    - assert
    - std::tie
    - TiffRootIFDOwner::get
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: "std::unique_ptr<RawDecoder> TiffParser::makeDecoder(TiffRootIFDOwner
      root,\n                                                    Buffer data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Decoder>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:127,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' root'
    - data
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: rawspeed::TiffParser::constructor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Decoder>
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: "std::unique_ptr<RawDecoder> TiffParser::constructor(TiffRootIFDOwner&&
      root,\n                                                    Buffer data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: DECODER
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::TiffParser::TiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffParser::TiffParser(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffParser::makeDecoder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:63,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::TiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffParser::parse
    - rawspeed::TiffParser::makeDecoder
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> TiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:68,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:68,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:69,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:71,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:74,1
    - Dst: std::make_unique<TiffRootIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:82,1
    - Dst: auto::getSubIFDs
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:83,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:86,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:94,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:94,1
    - Dst: auto::add
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:95,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - parent
    - data
    argTypes:
    - TiffIFD*
    - Buffer
    assertStmts:
    - condition: (subIFD.get())
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: rawspeed::TiffParser::parse
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 4
    functionsReached:
    - ByteStream::getU16
    - auto::get
    - ByteStream::getU32
    - std::unique_ptr::get
    - auto::add
    - std::move
    - ThrowTPE
    - std::make_unique<TiffRootIFD>
    - ByteStream::skipBytes
    - auto::getSubIFDs
    - assert
    - getTiffByteOrder
    - ByteStream::setByteOrder
    - std::make_unique<TiffIFD>
    linkageType: ''
    returnType: TiffRootIFDOwner
    signature: TiffRootIFDOwner TiffParser::parse(TiffIFD* parent, Buffer data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:104,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:110,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:113,1
    - Dst: dChecker
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:115,1
    - Dst: TiffRootIFDOwner::get
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:115,1
    - Dst: dConstructor
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:118,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:118,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - root
    - data
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts:
    - condition: (dChecker)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    - condition: (dConstructor)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: rawspeed::TiffParser::makeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 2
    functionsReached:
    - dChecker
    - std::move
    - ThrowTPE
    - dConstructor
    - assert
    - std::tie
    - TiffRootIFDOwner::get
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: "std::unique_ptr<RawDecoder> TiffParser::makeDecoder(TiffRootIFDOwner
      root,\n                                                    Buffer data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Decoder>
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:127,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' root'
    - data
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: rawspeed::TiffParser::constructor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Decoder>
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: "std::unique_ptr<RawDecoder> TiffParser::constructor(TiffRootIFDOwner&&
      root,\n                                                    Buffer data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: DECODER
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::CiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::CiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::CiffParser::CiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffParser::CiffParser(Buffer inputData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:46,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:48,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:51,1
    - Dst: rawspeed::CrwDecoder::isCRW
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:54,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:55,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:58,1
    - Dst: std::make_unique<CiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: rawspeed::CiffParser::parseData
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - rawspeed::CrwDecoder::isCRW
    - ThrowCPE
    - std::make_unique<CiffIFD>
    - ByteStream::getSubStream
    linkageType: ''
    returnType: void
    signature: void CiffParser::parseData()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CiffParser::parseData
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:64,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:66,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:68,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:69,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:69,1
    - Dst: std::make_unique<CrwDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:72,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:72,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: rawspeed::CiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 0
    functionsReached:
    - getIFDsWithTag
    - std::move
    - getEntry
    - ThrowCPE
    - auto*::getString
    - std::make_unique<CrwDecoder>
    - trimSpaces
    - rawspeed::CiffParser::parseData
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> CiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inputData
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::CiffParser::CiffParser
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffParser::CiffParser(Buffer inputData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:46,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:48,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:51,1
    - Dst: rawspeed::CrwDecoder::isCRW
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:54,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:55,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:58,1
    - Dst: std::make_unique<CiffIFD>
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: rawspeed::CiffParser::parseData
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - rawspeed::CrwDecoder::isCRW
    - ThrowCPE
    - std::make_unique<CiffIFD>
    - ByteStream::getSubStream
    linkageType: ''
    returnType: void
    signature: void CiffParser::parseData()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CiffParser::parseData
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:64,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:66,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:68,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:69,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:69,1
    - Dst: std::make_unique<CrwDecoder>
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:72,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:72,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: rawspeed::CiffParser::getDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
    functionUses: 0
    functionsReached:
    - getIFDsWithTag
    - std::move
    - getEntry
    - ThrowCPE
    - auto*::getString
    - std::make_unique<CrwDecoder>
    - trimSpaces
    - rawspeed::CiffParser::parseData
    linkageType: ''
    returnType: std::unique_ptr<RawDecoder>
    signature: std::unique_ptr<RawDecoder> CiffParser::getDecoder(const CameraMetaData*
      meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::FiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::FiffParserException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/parsers/FiffParserException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FiffParserException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowCME
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowCME(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowCME
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowCME(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::ColorFilterArray::ColorFilterArray
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: rawspeed::ColorFilterArray::getSize
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::ColorFilterArray::ColorFilterArray
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: rawspeed::ColorFilterArray::getSize
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getSize() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:54,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:55,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:56,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:59,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:61,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:62,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:67,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:79,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:81,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:82,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:84,1
    - Dst: rawspeed::Camera::parseCameraChild
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - ' camera'
    argTypes:
    - pugi::xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 87
    functionName: rawspeed::Camera::Camera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - empty
    - attribute
    - ThrowCME
    - children
    - rawspeed::Camera::parseCameraChild
    linkageType: ''
    returnType: void
    signature: void Camera::Camera(const pugi::xml_node& camera)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Camera*::aliases::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:91,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:92,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:97,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - camera
    - alias_num
    argTypes:
    - Camera*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: rawspeed::Camera::Camera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - Camera*::aliases::size
    - clear
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void Camera::Camera(const Camera* camera, uint32_t alias_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::name
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::name
    linkageType: ''
    returnType: std::string
    signature: std::string name(const xml_node& a)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(std::string_view c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::name
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::name
    linkageType: ''
    returnType: std::string
    signature: std::string name(const xml_node& a)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(std::string_view c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:151,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:152,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:154,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:155,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:156,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:156,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:157,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:159,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:161,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:165,1
    - Dst: getAsCFAColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: static_cast<char>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: tolower
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:171,1
    - Dst: setColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: rawspeed::Camera::parseColorRow
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - child_value
    - getAsCFAColor
    - setColorAt
    - getSize
    - ThrowCME
    - static_cast<char>
    - tolower
    - std::string::size
    - static_cast<int>
    - iPoint2D
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorRow(const xml_node& c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:178,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:179,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:181,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:182,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:183,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:183,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:184,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:187,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:188,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:189,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:189,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:190,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:193,1
    - Dst: getAsCFAColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:195,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:197,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:197,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:198,1
    - Dst: setColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:200,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 201
    functionName: rawspeed::Camera::parseColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - child_value
    - getAsCFAColor
    - setColorAt
    - getSize
    - ThrowCME
    - iPoint2D
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseColor(const xml_node& c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:204,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:204,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:205,1
    - Dst: setSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:208,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:209,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:210,1
    - Dst: rawspeed::Camera::parseColorRow
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:211,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:212,1
    - Dst: rawspeed::Camera::parseColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: rawspeed::Camera::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Camera::parseColor
    - children
    - attribute
    - setSize
    - ThrowCME
    - rawspeed::Camera::parseColorRow
    - iPoint2D
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseCFA(const xml_node& cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:219,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:220,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:222,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:223,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:224,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:225,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:227,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:228,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:229,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:230,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:233,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:236,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:236,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:237,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:239,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:239,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: rawspeed::Camera::parseCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - ThrowCME
    - auto::empty
    - auto::as_int
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseCrop(const xml_node& cur)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:245,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:246,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:248,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:249,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:250,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:252,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:254,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:254,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:257,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:259,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:260,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:260,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:263,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:265,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:267,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:269,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:270,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:273,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:275,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:276,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:276,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 282
    functionName: rawspeed::Camera::parseBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - emplace_back
    - ThrowCME
    - children
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseBlackAreas(const xml_node& cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:285,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:286,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:288,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:289,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:289,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:290,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:291,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: rawspeed::Camera::parseAliases
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - emplace_back
    - child_value
    - ThrowCME
    - children
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseAliases(const xml_node& cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:296,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:297,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:299,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:300,1
    - Dst: std::string::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:301,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:302,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:302,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:303,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:305,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: rawspeed::Camera::parseHints
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - attribute
    - std::string::empty
    - ThrowCME
    - children
    - c_str
    - name
    - add
    linkageType: ''
    returnType: void
    signature: void Camera::parseHints(const xml_node& cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:312,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:313,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:315,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:316,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:317,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:317,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:318,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:320,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:321,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:322,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:322,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:323,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: rawspeed::Camera::parseID
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - empty
    - attribute
    - child_value
    - ThrowCME
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseID(const xml_node& cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:329,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:330,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:335,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:335,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:336,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:336,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:340,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:341,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:342,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:343,1
    - Dst: stringToListOfInts
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:345,1
    - Dst: stringToListOfInts
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:346,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:347,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:349,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: rawspeed::Camera::parseSensor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - stoi
    - attribute
    - stringToListOfInts
    - emplace_back
    - ThrowCME
    - vector::empty
    - splitString
    - name
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: void Camera::parseSensor(const xml_node& cur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:357,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:358,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:360,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:362,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:365,1
    - Dst: NotARational<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:365,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:367,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:368,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:369,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:371,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:373,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:376,1
    - Dst: text
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:376,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:378,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:379,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:382,1
    - Dst: std::stoi
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 387
    functionName: rawspeed::Camera::parseColorMatrix
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - splitString
    - attribute
    - text
    - std::vector::begin
    - std::transform
    - begin
    - std::vector::size
    - ThrowCME
    - std::vector::end
    - std::stoi
    - resize
    - children
    - name
    - NotARational<int>
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorMatrix(const xml_node& cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:390,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:391,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:393,1
    - Dst: rawspeed::Camera::parseColorMatrix
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: rawspeed::Camera::parseColorMatrices
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - children
    - name
    - rawspeed::Camera::parseColorMatrix
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorMatrices(const xml_node& cur)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:398,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:398,1
    - Dst: rawspeed::Camera::parseCFA
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:399,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:400,1
    - Dst: rawspeed::Camera::parseCrop
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:401,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:402,1
    - Dst: rawspeed::Camera::parseBlackAreas
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:403,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:404,1
    - Dst: rawspeed::Camera::parseAliases
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:405,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:406,1
    - Dst: rawspeed::Camera::parseHints
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:407,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:408,1
    - Dst: rawspeed::Camera::parseID
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:409,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:410,1
    - Dst: rawspeed::Camera::parseSensor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:411,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:412,1
    - Dst: rawspeed::Camera::parseColorMatrices
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 415
    functionName: rawspeed::Camera::parseCameraChild
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::Camera::parseID
    - rawspeed::Camera::parseCrop
    - rawspeed::Camera::parseSensor
    - rawspeed::Camera::parseHints
    - rawspeed::Camera::parseCFA
    - rawspeed::Camera::parseAliases
    - rawspeed::Camera::parseColorMatrices
    - name
    - rawspeed::Camera::parseBlackAreas
    linkageType: ''
    returnType: void
    signature: void Camera::parseCameraChild(const xml_node& cur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:419,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:423,1
    - Dst: front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:424,1
    - Dst: isIsoWithin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:428,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:429,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:431,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:431,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:433,1
    - Dst: vector::front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:434,1
    - Dst: isDefault
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:437,1
    - Dst: vector::front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - iso
    argTypes:
    - int
    assertStmts:
    - condition: (!candidates.empty())
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    constantsTouched: []
    func_position:
      end: 443
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 443
    functionName: rawspeed::Camera::getSensorInfo
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - front
    - isIsoWithin
    - empty
    - size
    - vector::size
    - vector::front
    - vector::empty
    - assert
    - isDefault
    - vector::push_back
    linkageType: ''
    returnType: CameraSensorInfo
    signature: CameraSensorInfo * Camera::getSensorInfo(int iso) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:54,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:55,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:56,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:59,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:61,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:62,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:67,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:79,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:81,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:82,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:84,1
    - Dst: rawspeed::Camera::parseCameraChild
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - ' camera'
    argTypes:
    - pugi::xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 87
    functionName: rawspeed::Camera::Camera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - empty
    - attribute
    - ThrowCME
    - children
    - rawspeed::Camera::parseCameraChild
    linkageType: ''
    returnType: void
    signature: void Camera::Camera(const pugi::xml_node& camera)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Camera*::aliases::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:91,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:92,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:97,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - camera
    - alias_num
    argTypes:
    - Camera*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: rawspeed::Camera::Camera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - Camera*::aliases::size
    - clear
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void Camera::Camera(const Camera* camera, uint32_t alias_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::name
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::name
    linkageType: ''
    returnType: std::string
    signature: std::string name(const xml_node& a)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(std::string_view c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::name
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 4
    functionsReached:
    - rawspeed::name
    linkageType: ''
    returnType: std::string
    signature: std::string name(const xml_node& a)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: rawspeed::getAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getAsCFAColor(std::string_view c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:151,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:152,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:154,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:155,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:156,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:156,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:157,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:159,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:160,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:161,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:163,1
    - Dst: std::string::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:165,1
    - Dst: getAsCFAColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: static_cast<char>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: tolower
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:168,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:171,1
    - Dst: setColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: rawspeed::Camera::parseColorRow
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - child_value
    - getAsCFAColor
    - setColorAt
    - getSize
    - ThrowCME
    - static_cast<char>
    - tolower
    - std::string::size
    - static_cast<int>
    - iPoint2D
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorRow(const xml_node& c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:178,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:179,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:181,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:182,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:183,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:183,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:184,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:187,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:188,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:189,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:189,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:190,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:193,1
    - Dst: getAsCFAColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:195,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:197,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:197,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:198,1
    - Dst: setColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:200,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 201
    functionName: rawspeed::Camera::parseColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - child_value
    - getAsCFAColor
    - setColorAt
    - getSize
    - ThrowCME
    - iPoint2D
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseColor(const xml_node& c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:204,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:204,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:205,1
    - Dst: setSize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:207,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:208,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:209,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:210,1
    - Dst: rawspeed::Camera::parseColorRow
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:211,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:212,1
    - Dst: rawspeed::Camera::parseColor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: rawspeed::Camera::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::Camera::parseColor
    - children
    - attribute
    - setSize
    - ThrowCME
    - rawspeed::Camera::parseColorRow
    - iPoint2D
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseCFA(const xml_node& cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:219,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:220,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:222,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:223,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:224,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:225,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:227,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:228,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:229,1
    - Dst: auto::as_int
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:230,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:232,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:233,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:236,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:236,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:237,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:239,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:239,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: rawspeed::Camera::parseCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - ThrowCME
    - auto::empty
    - auto::as_int
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseCrop(const xml_node& cur)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:245,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:246,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:248,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:249,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:250,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:252,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:254,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:254,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:257,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:259,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:260,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:260,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:263,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:265,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:267,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:269,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:270,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:273,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:275,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:276,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:276,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 282
    functionName: rawspeed::Camera::parseBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - emplace_back
    - ThrowCME
    - children
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseBlackAreas(const xml_node& cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:285,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:286,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:288,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:289,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:289,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:290,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:291,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: rawspeed::Camera::parseAliases
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - emplace_back
    - child_value
    - ThrowCME
    - children
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseAliases(const xml_node& cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:296,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:297,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:299,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:300,1
    - Dst: std::string::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:301,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:302,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:302,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:303,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:305,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: rawspeed::Camera::parseHints
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - attribute
    - std::string::empty
    - ThrowCME
    - children
    - c_str
    - name
    - add
    linkageType: ''
    returnType: void
    signature: void Camera::parseHints(const xml_node& cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:312,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:313,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:315,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:316,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:317,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:317,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:318,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:320,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:321,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:322,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:322,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:323,1
    - Dst: child_value
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: rawspeed::Camera::parseID
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - empty
    - attribute
    - child_value
    - ThrowCME
    - c_str
    - name
    linkageType: ''
    returnType: void
    signature: void Camera::parseID(const xml_node& cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:329,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:330,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:335,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:335,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:336,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:336,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:340,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:341,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:342,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:343,1
    - Dst: stringToListOfInts
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:345,1
    - Dst: stringToListOfInts
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:346,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:347,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:349,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: rawspeed::Camera::parseSensor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - stoi
    - attribute
    - stringToListOfInts
    - emplace_back
    - ThrowCME
    - vector::empty
    - splitString
    - name
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: void Camera::parseSensor(const xml_node& cur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:357,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:358,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:360,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:362,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:365,1
    - Dst: NotARational<int>
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:365,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:367,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:368,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:369,1
    - Dst: attribute
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:371,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:373,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:376,1
    - Dst: text
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:376,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:378,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:379,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:381,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:382,1
    - Dst: std::stoi
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 387
    functionName: rawspeed::Camera::parseColorMatrix
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - splitString
    - attribute
    - text
    - std::vector::begin
    - std::transform
    - begin
    - std::vector::size
    - ThrowCME
    - std::vector::end
    - std::stoi
    - resize
    - children
    - name
    - NotARational<int>
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorMatrix(const xml_node& cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:390,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:391,1
    - Dst: children
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:393,1
    - Dst: rawspeed::Camera::parseColorMatrix
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: rawspeed::Camera::parseColorMatrices
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 1
    functionsReached:
    - children
    - name
    - rawspeed::Camera::parseColorMatrix
    - ThrowCME
    linkageType: ''
    returnType: void
    signature: void Camera::parseColorMatrices(const xml_node& cur)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:398,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:398,1
    - Dst: rawspeed::Camera::parseCFA
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:399,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:400,1
    - Dst: rawspeed::Camera::parseCrop
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:401,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:402,1
    - Dst: rawspeed::Camera::parseBlackAreas
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:403,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:404,1
    - Dst: rawspeed::Camera::parseAliases
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:405,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:406,1
    - Dst: rawspeed::Camera::parseHints
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:407,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:408,1
    - Dst: rawspeed::Camera::parseID
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:409,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:410,1
    - Dst: rawspeed::Camera::parseSensor
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:411,1
    - Dst: name
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:412,1
    - Dst: rawspeed::Camera::parseColorMatrices
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' cur'
    argTypes:
    - xml_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 415
    functionName: rawspeed::Camera::parseCameraChild
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::Camera::parseID
    - rawspeed::Camera::parseCrop
    - rawspeed::Camera::parseSensor
    - rawspeed::Camera::parseHints
    - rawspeed::Camera::parseCFA
    - rawspeed::Camera::parseAliases
    - rawspeed::Camera::parseColorMatrices
    - name
    - rawspeed::Camera::parseBlackAreas
    linkageType: ''
    returnType: void
    signature: void Camera::parseCameraChild(const xml_node& cur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:419,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:423,1
    - Dst: front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:424,1
    - Dst: isIsoWithin
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:428,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:429,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:431,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:431,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:433,1
    - Dst: vector::front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:434,1
    - Dst: isDefault
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:437,1
    - Dst: vector::front
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.cpp:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - iso
    argTypes:
    - int
    assertStmts:
    - condition: (!candidates.empty())
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    constantsTouched: []
    func_position:
      end: 443
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 443
    functionName: rawspeed::Camera::getSensorInfo
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
    functionUses: 0
    functionsReached:
    - front
    - isIsoWithin
    - empty
    - size
    - vector::size
    - vector::front
    - vector::empty
    - assert
    - isDefault
    - vector::push_back
    linkageType: ''
    returnType: CameraSensorInfo
    signature: CameraSensorInfo * Camera::getSensorInfo(int iso) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: try_emplace
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::Hints::add
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - try_emplace
    linkageType: ''
    returnType: void
    signature: void add(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Hints::contains
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: rawspeed::Hints::contains
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 1
    functionsReached:
    - rawspeed::Hints::contains
    linkageType: ''
    returnType: bool
    signature: bool contains(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:61,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:62,1
    - Dst: auto::second::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' key'
    - defaultValue
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: rawspeed::Hints::get
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - end
    - auto::second::empty
    - find
    linkageType: ''
    returnType: T
    signature: T get(const std::string& key, T defaultValue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:70,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' key'
    - defaultValue
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: rawspeed::Hints::get
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool get(const std::string& key, bool defaultValue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: try_emplace
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::Hints::add
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - try_emplace
    linkageType: ''
    returnType: void
    signature: void add(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Hints::contains
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: rawspeed::Hints::contains
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 2
    functionsReached:
    - rawspeed::Hints::contains
    linkageType: ''
    returnType: bool
    signature: bool contains(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:61,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:62,1
    - Dst: auto::second::empty
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' key'
    - defaultValue
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: rawspeed::Hints::get
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - end
    - auto::second::empty
    - find
    linkageType: ''
    returnType: T
    signature: T get(const std::string& key, T defaultValue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:70,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/Camera.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' key'
    - defaultValue
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: rawspeed::Hints::get
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/Camera.h
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool get(const std::string& key, bool defaultValue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::setSize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _size'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::ColorFilterArray::ColorFilterArray
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::ColorFilterArray(const iPoint2D& _size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:51,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:54,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:64,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:66,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' _size'
    argTypes:
    - iPoint2D
    assertStmts:
    - condition: (_size.hasPositiveArea() && "CFA must have positive size.")
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: rawspeed::ColorFilterArray::setSize
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 1
    functionsReached:
    - area
    - end
    - begin
    - ThrowRDE
    - implicit_cast<size_t>
    - assert
    - resize
    - iPoint2D
    - fill
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setSize(const iPoint2D& _size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:77,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:77,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: rawspeed::ColorFilterArray::getColorAt
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ThrowRDE
    - invariant
    - static_cast<size_t>
    - hasPositiveArea
    linkageType: ''
    returnType: CFAColor
    signature: CFAColor ColorFilterArray::getColorAt(int x, int y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::setSize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:86,1
    - Dst: va_start
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:89,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:90,1
    - Dst: va_end
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in_size
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: rawspeed::ColorFilterArray::setCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - area
    - va_end
    - rawspeed::ColorFilterArray::setSize
    - va_start
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setCFA(iPoint2D in_size, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:98,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:100,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:105,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:105,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:108,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: rawspeed::ColorFilterArray::shiftRight
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - empty
    - area
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - ThrowRDE
    - implicit_cast<size_t>
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::shiftRight(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:116,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:118,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:123,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:123,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:126,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: rawspeed::ColorFilterArray::shiftDown
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - empty
    - area
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - ThrowRDE
    - implicit_cast<size_t>
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::shiftDown(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:136,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: rawspeed::ColorFilterArray::asString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ColorFilterArray::colorToString
    - rawspeed::ColorFilterArray::getColorAt
    linkageType: ''
    returnType: std::string
    signature: std::string ColorFilterArray::asString() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - filter
    - x
    - y
    argTypes:
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: rawspeed::ColorFilterArray::shiftDcrawFilter
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 8
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ColorFilterArray::shiftDcrawFilter(uint32_t filter, int x,
      int y)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: rawspeed::getColorAsString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string_view>
    signature: Optional<std::string_view> getColorAsString(CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: rawspeed::getColorAsString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string_view>
    signature: Optional<std::string_view> getColorAsString(CFAColor c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getColorAsString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:205,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:205,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: rawspeed::ColorFilterArray::colorToString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 3
    functionsReached:
    - ThrowRDE
    - std::string
    - static_cast<unsigned>
    - getColorAsString
    linkageType: ''
    returnType: std::string
    signature: std::string ColorFilterArray::colorToString(CFAColor c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:211,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:213,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pos
    - c
    argTypes:
    - iPoint2D
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: rawspeed::ColorFilterArray::setColorAt
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setColorAt(iPoint2D pos, CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: out_of_range
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: rawspeed::toDcrawColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - out_of_range
    - rawspeed::ColorFilterArray::colorToString
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t toDcrawColor(CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: out_of_range
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: rawspeed::toDcrawColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - out_of_range
    - rawspeed::ColorFilterArray::colorToString
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t toDcrawColor(CFAColor c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:247,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:247,1
    - Dst: toDcrawColor
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:258,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:258,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:264,1
    - Dst: rawspeed::ColorFilterArray::asString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:264,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 268
    functionName: rawspeed::ColorFilterArray::getDcrawFilter
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - empty
    - toDcrawColor
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - rawspeed::ColorFilterArray::asString
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ColorFilterArray::getDcrawFilter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::setSize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _size'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::ColorFilterArray::ColorFilterArray
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ColorFilterArray::setSize
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::ColorFilterArray(const iPoint2D& _size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:51,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:54,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:54,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:62,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:64,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:66,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:68,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' _size'
    argTypes:
    - iPoint2D
    assertStmts:
    - condition: (_size.hasPositiveArea() && "CFA must have positive size.")
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: rawspeed::ColorFilterArray::setSize
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 3
    functionsReached:
    - area
    - end
    - begin
    - ThrowRDE
    - implicit_cast<size_t>
    - assert
    - resize
    - iPoint2D
    - fill
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setSize(const iPoint2D& _size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:77,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:77,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: rawspeed::ColorFilterArray::getColorAt
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 4
    functionsReached:
    - empty
    - ThrowRDE
    - invariant
    - static_cast<size_t>
    - hasPositiveArea
    linkageType: ''
    returnType: CFAColor
    signature: CFAColor ColorFilterArray::getColorAt(int x, int y) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::setSize
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:86,1
    - Dst: va_start
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:89,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:90,1
    - Dst: va_end
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in_size
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: rawspeed::ColorFilterArray::setCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - area
    - va_end
    - rawspeed::ColorFilterArray::setSize
    - va_start
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setCFA(iPoint2D in_size, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:98,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:100,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:105,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:105,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:108,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: rawspeed::ColorFilterArray::shiftRight
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - empty
    - area
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - ThrowRDE
    - implicit_cast<size_t>
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::shiftRight(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:116,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:118,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:123,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:123,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:126,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: rawspeed::ColorFilterArray::shiftDown
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - empty
    - area
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - ThrowRDE
    - implicit_cast<size_t>
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::shiftDown(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:136,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: rawspeed::ColorFilterArray::asString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::ColorFilterArray::colorToString
    - rawspeed::ColorFilterArray::getColorAt
    linkageType: ''
    returnType: std::string
    signature: std::string ColorFilterArray::asString() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - filter
    - x
    - y
    argTypes:
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: rawspeed::ColorFilterArray::shiftDcrawFilter
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 8
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ColorFilterArray::shiftDcrawFilter(uint32_t filter, int x,
      int y)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: rawspeed::getColorAsString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string_view>
    signature: Optional<std::string_view> getColorAsString(CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: rawspeed::getColorAsString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string_view>
    signature: Optional<std::string_view> getColorAsString(CFAColor c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getColorAsString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:205,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:205,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: rawspeed::ColorFilterArray::colorToString
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 6
    functionsReached:
    - ThrowRDE
    - std::string
    - static_cast<unsigned>
    - getColorAsString
    linkageType: ''
    returnType: std::string
    signature: std::string ColorFilterArray::colorToString(CFAColor c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:211,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:213,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pos
    - c
    argTypes:
    - iPoint2D
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: rawspeed::ColorFilterArray::setColorAt
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void ColorFilterArray::setColorAt(iPoint2D pos, CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: out_of_range
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: rawspeed::toDcrawColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - out_of_range
    - rawspeed::ColorFilterArray::colorToString
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t toDcrawColor(CFAColor c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: out_of_range
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:235,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - CFAColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: rawspeed::toDcrawColor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - out_of_range
    - rawspeed::ColorFilterArray::colorToString
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t toDcrawColor(CFAColor c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:247,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:247,1
    - Dst: toDcrawColor
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:258,1
    - Dst: rawspeed::ColorFilterArray::getColorAt
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:258,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:264,1
    - Dst: rawspeed::ColorFilterArray::asString
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:264,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 268
    functionName: rawspeed::ColorFilterArray::getDcrawFilter
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
    functionUses: 0
    functionsReached:
    - isPowerOfTwo
    - empty
    - toDcrawColor
    - writeLog
    - rawspeed::ColorFilterArray::getColorAt
    - rawspeed::ColorFilterArray::asString
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ColorFilterArray::getDcrawFilter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - offset_
    - size_
    - isVertical_
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: rawspeed::BlackArea::BlackArea
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/BlackArea.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackArea(int offset_, int size_, bool isVertical_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - offset_
    - size_
    - isVertical_
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: rawspeed::BlackArea::BlackArea
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/BlackArea.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BlackArea(int offset_, int size_, bool isVertical_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:51,1
    - Dst: pugi::as_wide
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:54,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:58,1
    - Dst: xml_parse_result::description
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:60,1
    - Dst: xml_document::child
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:61,1
    - Dst: xml_document::child
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:64,1
    - Dst: rawspeed::CameraMetaData::addCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:65,1
    - Dst: std::make_unique<Camera>
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:65,1
    - Dst: auto*::aliases::size
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:71,1
    - Dst: rawspeed::CameraMetaData::addCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:72,1
    - Dst: std::make_unique<Camera>
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - docname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: rawspeed::CameraMetaData::CameraMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - defined
    - rawspeed::CameraMetaData::addCamera
    - std::make_unique<Camera>
    - xml_parse_result::description
    - ThrowCME
    - auto*::aliases::size
    - xml_document::child
    - pugi::as_wide
    linkageType: ''
    returnType: void
    signature: void CameraMetaData::CameraMetaData(const char* docname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:83,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:84,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::getId
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::trimSpaces
    linkageType: ''
    returnType: CameraId
    signature: "CameraId getId(const std::string& make, const std::string& model,\n
      \                     const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:83,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:84,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::getId
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::trimSpaces
    linkageType: ''
    returnType: CameraId
    signature: "CameraId getId(const std::string& make, const std::string& model,\n
      \                     const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:95,1
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:95,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:96,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: rawspeed::CameraMetaData::getCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - end
    - getId
    - find
    - auto::second::get
    linkageType: ''
    returnType: Camera
    signature: "Camera * CameraMetaData::getCamera(const std::string& make,\n                                        const
      std::string& model,\n                                        const std::string&
      mode) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:101,1
    - Dst: find_if
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:103,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:106,1
    - Dst: tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:106,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:109,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' make'
    - ' model'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: rawspeed::CameraMetaData::getCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - find_if
    - end
    - cbegin
    - tie
    - auto::second::get
    - cend
    - getId
    linkageType: ''
    returnType: Camera
    signature: "Camera * CameraMetaData::getCamera(const std::string& make,\n                                        const
      std::string& model) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CameraMetaData::getCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: rawspeed::CameraMetaData::hasCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CameraMetaData::getCamera
    linkageType: ''
    returnType: bool
    signature: "bool CameraMetaData::hasCamera(const std::string& make,\n                               const
      std::string& model,\n                               const std::string& mode)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:123,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filesize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: '* RAWSPEED_READONLY

      CameraMetaData::getChdkCamera(uint32_t filesize) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: Camera
    signature: 'Camera * RAWSPEED_READONLY

      CameraMetaData::getChdkCamera(uint32_t filesize) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filesize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize)
      const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:132,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:133,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:134,1
    - Dst: std::unique_ptr<Camera>::make::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:137,1
    - Dst: std::unique_ptr<Camera>::model::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:137,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:140,1
    - Dst: mode::find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:142,1
    - Dst: hints::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:143,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:143,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:144,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:145,1
    - Dst: make::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:147,1
    - Dst: model::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:147,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:149,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:149,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - cam
    argTypes:
    - std::unique_ptr<Camera>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: rawspeed::CameraMetaData::addCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 1
    functionsReached:
    - contains
    - mode::find
    - stoi
    - std::unique_ptr<Camera>::model::c_str
    - std::move
    - make::c_str
    - writeLog
    - hints::get
    - auto::empty
    - model::c_str
    - get
    - std::string
    - std::unique_ptr<Camera>::make::c_str
    - getId
    linkageType: ''
    returnType: Camera
    signature: Camera * CameraMetaData::addCamera(std::unique_ptr<Camera> cam)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - make
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: rawspeed::CameraMetaData::disableMake
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetaData::disableMake(std::string_view make) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - make
    - model
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: rawspeed::CameraMetaData::disableCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CameraMetaData::disableCamera(std::string_view make,\n                                   std::string_view
      model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:51,1
    - Dst: pugi::as_wide
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:54,1
    - Dst: ThrowCME
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:58,1
    - Dst: xml_parse_result::description
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:60,1
    - Dst: xml_document::child
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:61,1
    - Dst: xml_document::child
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:64,1
    - Dst: rawspeed::CameraMetaData::addCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:65,1
    - Dst: std::make_unique<Camera>
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:65,1
    - Dst: auto*::aliases::size
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:71,1
    - Dst: rawspeed::CameraMetaData::addCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:72,1
    - Dst: std::make_unique<Camera>
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - docname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: rawspeed::CameraMetaData::CameraMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - defined
    - rawspeed::CameraMetaData::addCamera
    - std::make_unique<Camera>
    - xml_parse_result::description
    - ThrowCME
    - auto*::aliases::size
    - xml_document::child
    - pugi::as_wide
    linkageType: ''
    returnType: void
    signature: void CameraMetaData::CameraMetaData(const char* docname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:83,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:84,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::getId
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::trimSpaces
    linkageType: ''
    returnType: CameraId
    signature: "CameraId getId(const std::string& make, const std::string& model,\n
      \                     const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:83,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:84,1
    - Dst: rawspeed::trimSpaces
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::getId
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::trimSpaces
    linkageType: ''
    returnType: CameraId
    signature: "CameraId getId(const std::string& make, const std::string& model,\n
      \                     const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:95,1
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:95,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:96,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: rawspeed::CameraMetaData::getCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 1
    functionsReached:
    - end
    - getId
    - find
    - auto::second::get
    linkageType: ''
    returnType: Camera
    signature: "Camera * CameraMetaData::getCamera(const std::string& make,\n                                        const
      std::string& model,\n                                        const std::string&
      mode) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:101,1
    - Dst: find_if
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:103,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:104,1
    - Dst: tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:106,1
    - Dst: tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:106,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:109,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' make'
    - ' model'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: rawspeed::CameraMetaData::getCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 1
    functionsReached:
    - find_if
    - end
    - cbegin
    - tie
    - auto::second::get
    - cend
    - getId
    linkageType: ''
    returnType: Camera
    signature: "Camera * CameraMetaData::getCamera(const std::string& make,\n                                        const
      std::string& model) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CameraMetaData::getCamera
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: rawspeed::CameraMetaData::hasCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CameraMetaData::getCamera
    linkageType: ''
    returnType: bool
    signature: "bool CameraMetaData::hasCamera(const std::string& make,\n                               const
      std::string& model,\n                               const std::string& mode)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:123,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filesize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: '* RAWSPEED_READONLY

      CameraMetaData::getChdkCamera(uint32_t filesize) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: Camera
    signature: 'Camera * RAWSPEED_READONLY

      CameraMetaData::getChdkCamera(uint32_t filesize) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filesize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize)
      const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getId
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:132,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:133,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:134,1
    - Dst: std::unique_ptr<Camera>::make::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:137,1
    - Dst: std::unique_ptr<Camera>::model::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:137,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:140,1
    - Dst: mode::find
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:142,1
    - Dst: hints::get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:143,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:143,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:144,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:145,1
    - Dst: make::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:147,1
    - Dst: model::c_str
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:147,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:149,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:149,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - cam
    argTypes:
    - std::unique_ptr<Camera>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: rawspeed::CameraMetaData::addCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 2
    functionsReached:
    - contains
    - mode::find
    - stoi
    - std::unique_ptr<Camera>::model::c_str
    - std::move
    - make::c_str
    - writeLog
    - hints::get
    - auto::empty
    - model::c_str
    - get
    - std::string
    - std::unique_ptr<Camera>::make::c_str
    - getId
    linkageType: ''
    returnType: Camera
    signature: Camera * CameraMetaData::addCamera(std::unique_ptr<Camera> cam)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - make
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: rawspeed::CameraMetaData::disableMake
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetaData::disableMake(std::string_view make) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - make
    - model
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: rawspeed::CameraMetaData::disableCamera
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CameraMetaData::disableCamera(std::string_view make,\n                                   std::string_view
      model) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - black_level
    - white_level
    - min_iso
    - max_iso
    - black_separate
    argTypes:
    - int
    - int
    - int
    - int
    - vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: rawspeed::CameraSensorInfo::CameraSensorInfo
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void CameraSensorInfo::CameraSensorInfo(int black_level, int white_level,\n
      \                                  int min_iso, int max_iso,\n                                   vector<int>
      black_separate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - iso
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: RAWSPEED_READONLY CameraSensorInfo::isDefault() const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraSensorInfo::isDefault() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - black_level
    - white_level
    - min_iso
    - max_iso
    - black_separate
    argTypes:
    - int
    - int
    - int
    - int
    - vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: rawspeed::CameraSensorInfo::CameraSensorInfo
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void CameraSensorInfo::CameraSensorInfo(int black_level, int white_level,\n
      \                                  int min_iso, int max_iso,\n                                   vector<int>
      black_separate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - iso
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: RAWSPEED_READONLY CameraSensorInfo::isDefault() const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CameraSensorInfo::isDefault() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h:41,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CameraId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: operator<(const CameraId& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator<(const CameraId& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::CameraMetaData::CameraMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetaData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h:41,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CameraId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: operator<(const CameraId& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator<(const CameraId& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::CameraMetaData::CameraMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetaData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::CameraMetadataException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetadataException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::CameraMetadataException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CameraMetadataException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<const std::byte>::end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: rawspeed::copyPixelsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - Array1DRef<const std::byte>::end
    - Array1DRef<const std::byte>::begin
    - std::copy
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void copyPixelsImpl(Array1DRef<std::byte> dest,\n                           Array1DRef<const
      std::byte> src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:63,1
    - Dst: Array2DRef<const std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:64,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:65,1
    - Dst: Array2DRef<std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:66,1
    - Dst: Array2DRef<std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:66,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: Array2DRef<std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: Array2DRef<const std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: Array2DRef<std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: Array2DRef<std::byte>::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: Array2DRef<const std::byte>::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:72,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:75,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Array2DRef<std::byte>
    - Array2DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: rawspeed::copyPixelsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 1
    functionsReached:
    - Array2DRef<const std::byte>::getAsArray1DRef
    - Array2DRef<const std::byte>::width
    - Array2DRef<std::byte>::getAsArray1DRef
    - rawspeed::copyPixelsImpl
    - rawspeed::invariant
    - Array2DRef<const std::byte>::height
    - std::make_tuple
    - Array2DRef<std::byte>::height
    - Array2DRef<std::byte>::width
    linkageType: ''
    returnType: void
    signature: "void copyPixelsImpl(Array2DRef<std::byte> dest,\n                           Array2DRef<const
      std::byte> src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:82,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:83,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:84,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:85,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:86,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:87,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:88,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:89,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:90,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:91,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - destPtr
    - dstPitch
    - srcPtr
    - srcPitch
    - rowSize
    - height
    argTypes:
    - std::byte*
    - int
    - std::byte*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: rawspeed::copyPixels
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::copyPixelsImpl
    - Array2DRef
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void copyPixels(std::byte* destPtr, int dstPitch,\n                       const
      std::byte* srcPtr, int srcPitch, int rowSize,\n                       int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitwidth<uintptr_t>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:101,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:101,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - bitwidth<uintptr_t>
    - bitwidth<T>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value,\n                                                           uint64_t
      multiple)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value,\n                                                           uint64_t
      multiple)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
      Src: /src/librawspeed/src/librawspeed/common/Common.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - multiple
    - roundDown
    argTypes:
    - T
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: rawspeed::RAWSPEED_READNONE::roundToMultiple
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    linkageType: ''
    returnType: T
    signature: "T RAWSPEED_READNONE roundToMultiple(T value, uint64_t multiple,\n
      \                                             bool roundDown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundToMultiple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: rawspeed::RAWSPEED_READNONE::roundDown
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundToMultiple
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundDown(uint64_t value,\n                                               uint64_t
      multiple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundToMultiple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: rawspeed::RAWSPEED_READNONE::roundUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundToMultiple
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUp(uint64_t value,\n                                             uint64_t
      multiple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:141,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/src/librawspeed/common/Common.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - div
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: rawspeed::RAWSPEED_READNONE::roundUpDivision
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundUp
    - invariant
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUpDivision(uint64_t value,\n                                                     uint64_t
      div)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - div
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed::RAWSPEED_READNONE::roundUpDivisionSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUpDivisionSafe(uint64_t value,\n                                                         uint64_t
      div)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMisalignmentOffset
      Src: /src/librawspeed/src/librawspeed/common/Common.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: rawspeed::isAligned
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - getMisalignmentOffset
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE isAligned(T value, size_t multiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - ' list'
    argTypes:
    - T
    - std::initializer_list<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: rawspeed::RAWSPEED_READONLY::isIn
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY isIn(const T value,\n                            const
      std::initializer_list<T2>& list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find_first_not_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:165,1
    - Dst: std::string_view::find_last_not_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:168,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/common/Common.h:174,1
    - Dst: std::string_view::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:175,1
    - Dst: std::string_view::end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: rawspeed::trimSpaces
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 4
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - std::string_view::substr
    - std::string_view::find_last_not_of
    - std::string_view::find_first_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trimSpaces(std::string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/librawspeed/src/librawspeed/common/Common.h:183,1
    - Dst: std::string_view::find_first_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:184,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:187,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/common/Common.h:189,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/common/Common.h:191,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/common/Common.h:192,1
    - Dst: std::string_view::remove_prefix
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: rawspeed::splitString
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::vector::emplace_back
    - std::string_view::size
    - auto::empty
    - std::string_view::remove_prefix
    - std::string_view::substr
    - std::string_view::find_first_of
    - std::min
    - auto::size
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> splitString(const std::string& input,\n                                            char
      c = ' ')"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Common.h:203,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:203,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T>
    assertStmts:
    - condition: (v.size() == N && "Size mismatch")
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/librawspeed/src/librawspeed/common/Common.h
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: rawspeed::to_array
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - std::move
    - size
    - end
    - begin
    - std::array::begin
    - assert
    linkageType: ''
    returnType: std::array<T, N>
    signature: std::array<T, N> to_array(const std::vector<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:57,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<const std::byte>::end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: rawspeed::copyPixelsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 2
    functionsReached:
    - Array1DRef<const std::byte>::end
    - Array1DRef<const std::byte>::begin
    - std::copy
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void copyPixelsImpl(Array1DRef<std::byte> dest,\n                           Array1DRef<const
      std::byte> src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:63,1
    - Dst: Array2DRef<const std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:64,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:65,1
    - Dst: Array2DRef<std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:66,1
    - Dst: Array2DRef<std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:66,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: Array2DRef<std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: Array2DRef<const std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: Array2DRef<std::byte>::width
      Src: /src/librawspeed/src/librawspeed/common/Common.h:68,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: Array2DRef<std::byte>::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: Array2DRef<const std::byte>::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:70,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:72,1
    - Dst: Array2DRef<const std::byte>::height
      Src: /src/librawspeed/src/librawspeed/common/Common.h:75,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Array2DRef<std::byte>
    - Array2DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: rawspeed::copyPixelsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 3
    functionsReached:
    - Array2DRef<const std::byte>::getAsArray1DRef
    - Array2DRef<const std::byte>::width
    - Array2DRef<std::byte>::getAsArray1DRef
    - rawspeed::copyPixelsImpl
    - rawspeed::invariant
    - Array2DRef<const std::byte>::height
    - std::make_tuple
    - Array2DRef<std::byte>::height
    - Array2DRef<std::byte>::width
    linkageType: ''
    returnType: void
    signature: "void copyPixelsImpl(Array2DRef<std::byte> dest,\n                           Array2DRef<const
      std::byte> src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:82,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:83,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:84,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:85,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:86,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:87,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:88,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:89,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:90,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/Common.h:91,1
    - Dst: rawspeed::copyPixelsImpl
      Src: /src/librawspeed/src/librawspeed/common/Common.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - destPtr
    - dstPitch
    - srcPtr
    - srcPitch
    - rowSize
    - height
    argTypes:
    - std::byte*
    - int
    - std::byte*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: rawspeed::copyPixels
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::copyPixelsImpl
    - Array2DRef
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void copyPixels(std::byte* destPtr, int dstPitch,\n                       const
      std::byte* srcPtr, int srcPitch, int rowSize,\n                       int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitwidth<uintptr_t>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:101,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:101,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/librawspeed/src/librawspeed/common/Common.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 1
    functionsReached:
    - bitwidth<uintptr_t>
    - bitwidth<T>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value,\n                                                           uint64_t
      multiple)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value,\n                                                           uint64_t
      multiple)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
      Src: /src/librawspeed/src/librawspeed/common/Common.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - multiple
    - roundDown
    argTypes:
    - T
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: rawspeed::RAWSPEED_READNONE::roundToMultiple
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 2
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
    linkageType: ''
    returnType: T
    signature: "T RAWSPEED_READNONE roundToMultiple(T value, uint64_t multiple,\n
      \                                             bool roundDown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundToMultiple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: rawspeed::RAWSPEED_READNONE::roundDown
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundToMultiple
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundDown(uint64_t value,\n                                               uint64_t
      multiple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundToMultiple
      Src: /src/librawspeed/src/librawspeed/common/Common.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: rawspeed::RAWSPEED_READNONE::roundUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 1
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundToMultiple
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUp(uint64_t value,\n                                             uint64_t
      multiple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/common/Common.h:141,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/src/librawspeed/common/Common.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - div
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: rawspeed::RAWSPEED_READNONE::roundUpDivision
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::RAWSPEED_READNONE::roundUp
    - invariant
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUpDivision(uint64_t value,\n                                                     uint64_t
      div)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - div
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: rawspeed::RAWSPEED_READNONE::roundUpDivisionSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t RAWSPEED_READNONE roundUpDivisionSafe(uint64_t value,\n                                                         uint64_t
      div)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMisalignmentOffset
      Src: /src/librawspeed/src/librawspeed/common/Common.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - value
    - multiple
    argTypes:
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: rawspeed::isAligned
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - getMisalignmentOffset
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE isAligned(T value, size_t multiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - ' list'
    argTypes:
    - T
    - std::initializer_list<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: rawspeed::RAWSPEED_READONLY::isIn
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY isIn(const T value,\n                            const
      std::initializer_list<T2>& list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find_first_not_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:165,1
    - Dst: std::string_view::find_last_not_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:168,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/common/Common.h:174,1
    - Dst: std::string_view::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:175,1
    - Dst: std::string_view::end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: rawspeed::trimSpaces
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 4
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - std::string_view::substr
    - std::string_view::find_last_not_of
    - std::string_view::find_first_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trimSpaces(std::string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/librawspeed/src/librawspeed/common/Common.h:183,1
    - Dst: std::string_view::find_first_of
      Src: /src/librawspeed/src/librawspeed/common/Common.h:184,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:187,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/common/Common.h:189,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/common/Common.h:191,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/common/Common.h:192,1
    - Dst: std::string_view::remove_prefix
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: rawspeed::splitString
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::vector::emplace_back
    - std::string_view::size
    - auto::empty
    - std::string_view::remove_prefix
    - std::string_view::substr
    - std::string_view::find_first_of
    - std::min
    - auto::size
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> splitString(const std::string& input,\n                                            char
      c = ' ')"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Common.h:203,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Common.h:203,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/Common.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T>
    assertStmts:
    - condition: (v.size() == N && "Size mismatch")
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/librawspeed/src/librawspeed/common/Common.h
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: rawspeed::to_array
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.h
    functionUses: 0
    functionsReached:
    - std::move
    - size
    - end
    - begin
    - std::array::begin
    - assert
    linkageType: ''
    returnType: std::array<T, N>
    signature: std::array<T, N> to_array(const std::vector<T>& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __get_cpuid
      Src: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: rawspeed::Cpuid::SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp
    functionUses: 4
    functionsReached:
    - __get_cpuid
    linkageType: ''
    returnType: bool
    signature: bool Cpuid::SSE2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::Cpuid::SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Cpuid::SSE2()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __get_cpuid
      Src: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: rawspeed::Cpuid::SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp
    functionUses: 4
    functionsReached:
    - __get_cpuid
    linkageType: ''
    returnType: bool
    signature: bool Cpuid::SSE2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::Cpuid::SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Cpuid::SSE2()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - narrow
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: rawspeed::extendBinaryFloatingPoint
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 0
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t extendBinaryFloatingPoint(uint32_t narrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp16
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: rawspeed::fp16ToFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fp16ToFloat(uint16_t fp16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp24
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: rawspeed::fp24ToFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fp24ToFloat(uint32_t fp24)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - narrow
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: rawspeed::extendBinaryFloatingPoint
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 2
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t extendBinaryFloatingPoint(uint32_t narrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp16
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: rawspeed::fp16ToFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fp16ToFloat(uint16_t fp16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/common/FloatingPoint.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp24
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: rawspeed::fp24ToFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fp24ToFloat(uint32_t fp24)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawspeedException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawspeedException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawspeedException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawspeedException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:49,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:50,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:50,1
    - Dst: va_end
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:51,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:52,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:52,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:53,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: rawspeed::ThrowException
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached:
    - vsnprintf
    - writeLog
    - va_end
    - std::array::data
    - T
    - va_start
    linkageType: ''
    returnType: void
    signature: void ThrowException(const char* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: rawspeed::RawspeedException::log
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached:
    - writeLog
    linkageType: ''
    returnType: RAWSPEED_NOINLINE
    signature: RAWSPEED_NOINLINE log(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawspeedException::log
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: rawspeed::RawspeedException::RawspeedException
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawspeedException::log
    linkageType: ''
    returnType: void
    signature: void RawspeedException(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: XSTR
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: STR
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLASS
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: ThrowExceptionHelper
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowExceptionHelper(CLASS, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLASS
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: ThrowExceptionHelper
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowExceptionHelper(CLASS, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: ThrowRSE
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:49,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:50,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:50,1
    - Dst: va_end
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:51,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:52,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:52,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:53,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: rawspeed::ThrowException
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached:
    - vsnprintf
    - writeLog
    - va_end
    - std::array::data
    - T
    - va_start
    linkageType: ''
    returnType: void
    signature: void ThrowException(const char* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: rawspeed::RawspeedException::log
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 1
    functionsReached:
    - writeLog
    linkageType: ''
    returnType: RAWSPEED_NOINLINE
    signature: RAWSPEED_NOINLINE log(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawspeedException::log
      Src: /src/librawspeed/src/librawspeed/common/RawspeedException.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: rawspeed::RawspeedException::RawspeedException
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawspeedException::log
    linkageType: ''
    returnType: void
    signature: void RawspeedException(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: XSTR
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: STR
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLASS
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: ThrowExceptionHelper
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowExceptionHelper(CLASS, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - CLASS
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: ThrowExceptionHelper
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowExceptionHelper(CLASS, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: ThrowRSE
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawspeedException.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRSE(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:49,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: substr
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:52,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: ChecksumFileEntry::RelFileName::empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    - Dst: ChecksumFileEntry::RelFileName::back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' Line'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Entry.RelFileName.empty())
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    - condition: (Entry.RelFileName.back() != '\n')
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: rawspeed::ParseChecksumFileLine
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 0
    functionsReached:
    - ChecksumFileEntry::RelFileName::back
    - size
    - substr
    - assert
    - ChecksumFileEntry::RelFileName::empty
    - c_str
    - ThrowRSE
    linkageType: ''
    returnType: ChecksumFileEntry
    signature: "ChecksumFileEntry ParseChecksumFileLine(const std::string& Line,\n
      \                                       const std::string& RootDir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:49,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: substr
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:52,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: ChecksumFileEntry::RelFileName::empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    - Dst: ChecksumFileEntry::RelFileName::back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' Line'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Entry.RelFileName.empty())
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    - condition: (Entry.RelFileName.back() != '\n')
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: rawspeed::ParseChecksumFileLine
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 0
    functionsReached:
    - ChecksumFileEntry::RelFileName::back
    - size
    - substr
    - assert
    - ChecksumFileEntry::RelFileName::empty
    - c_str
    - ThrowRSE
    linkageType: ''
    returnType: ChecksumFileEntry
    signature: "ChecksumFileEntry ParseChecksumFileLine(const std::string& Line,\n
      \                                       const std::string& RootDir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::splitString
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:68,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:70,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:73,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:73,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:74,1
    - Dst: rawspeed::ParseChecksumFileLine
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ChecksumFileContent'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Line.empty())
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed::ParseChecksumFileContent
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::ParseChecksumFileLine
    - std::vector::emplace_back
    - std::vector::reserve
    - std::vector::size
    - assert
    - rawspeed::splitString
    linkageType: ''
    returnType: std::vector<ChecksumFileEntry>
    signature: "std::vector<ChecksumFileEntry> ParseChecksumFileContent(const std::string&
      ChecksumFileContent,\n                         const std::string& RootDir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:84,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:86,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: rawspeed::ParseChecksumFileContent
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' RootDir'
    - ' ChecksumFileBasename'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: rawspeed::ReadChecksumFile
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - rawspeed::ParseChecksumFileContent
    - FileReader::readFile
    - begin
    - reinterpret_cast<const char*>
    - getSize
    linkageType: ''
    returnType: std::vector<ChecksumFileEntry>
    signature: "std::vector<ChecksumFileEntry> ReadChecksumFile(const std::string&
      RootDir,\n                 const std::string& ChecksumFileBasename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:49,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: substr
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:52,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: ChecksumFileEntry::RelFileName::empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    - Dst: ChecksumFileEntry::RelFileName::back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' Line'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Entry.RelFileName.empty())
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    - condition: (Entry.RelFileName.back() != '\n')
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: rawspeed::ParseChecksumFileLine
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 1
    functionsReached:
    - ChecksumFileEntry::RelFileName::back
    - size
    - substr
    - assert
    - ChecksumFileEntry::RelFileName::empty
    - c_str
    - ThrowRSE
    linkageType: ''
    returnType: ChecksumFileEntry
    signature: "ChecksumFileEntry ParseChecksumFileLine(const std::string& Line,\n
      \                                       const std::string& RootDir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:49,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:50,1
    - Dst: substr
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:52,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: ChecksumFileEntry::RelFileName::empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:53,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    - Dst: ChecksumFileEntry::RelFileName::back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' Line'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Entry.RelFileName.empty())
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    - condition: (Entry.RelFileName.back() != '\n')
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: rawspeed::ParseChecksumFileLine
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 1
    functionsReached:
    - ChecksumFileEntry::RelFileName::back
    - size
    - substr
    - assert
    - ChecksumFileEntry::RelFileName::empty
    - c_str
    - ThrowRSE
    linkageType: ''
    returnType: ChecksumFileEntry
    signature: "ChecksumFileEntry ParseChecksumFileLine(const std::string& Line,\n
      \                                       const std::string& RootDir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::splitString
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:68,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:70,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:73,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:73,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:74,1
    - Dst: rawspeed::ParseChecksumFileLine
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ChecksumFileContent'
    - ' RootDir'
    argTypes:
    - std::string
    - std::string
    assertStmts:
    - condition: (!Line.empty())
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: rawspeed::ParseChecksumFileContent
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 1
    functionsReached:
    - empty
    - rawspeed::ParseChecksumFileLine
    - std::vector::emplace_back
    - std::vector::reserve
    - std::vector::size
    - assert
    - rawspeed::splitString
    linkageType: ''
    returnType: std::vector<ChecksumFileEntry>
    signature: "std::vector<ChecksumFileEntry> ParseChecksumFileContent(const std::string&
      ChecksumFileContent,\n                         const std::string& RootDir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:84,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:86,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:88,1
    - Dst: rawspeed::ParseChecksumFileContent
      Src: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' RootDir'
    - ' ChecksumFileBasename'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: rawspeed::ReadChecksumFile
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - rawspeed::ParseChecksumFileContent
    - FileReader::readFile
    - begin
    - reinterpret_cast<const char*>
    - getSize
    linkageType: ''
    returnType: std::vector<ChecksumFileEntry>
    signature: "std::vector<ChecksumFileEntry> ReadChecksumFile(const std::string&
      RootDir,\n                 const std::string& ChecksumFileBasename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp:30,1
    - Dst: omp_get_max_threads
      Src: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: rawspeed_get_number_of_processor_cores
    functionSourceFile: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp
    functionUses: 0
    functionsReached:
    - omp_get_max_threads
    - visibility
    linkageType: ''
    returnType: int
    signature: int rawspeed_get_number_of_processor_cores()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: rawspeed_get_number_of_processor_cores
    functionSourceFile: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp
    functionUses: 0
    functionsReached:
    - visibility
    linkageType: ''
    returnType: void
    signature: void rawspeed_get_number_of_processor_cores()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed::RawImageData::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:59,1
    - Dst: std::numeric_limits<decltype(cpp)>::max
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:61,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:62,1
    - Dst: rawspeed::RawImageData::createData
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - type
    - ' _dim'
    - _bpc
    - _cpp
    argTypes:
    - RawImageType
    - iPoint2D
    - int
    - int
    assertStmts:
    - condition: (_bpc > 0)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: rawspeed::RawImageData::RawImageData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - assert
    - rawspeed::RawImageData::createData
    - std::numeric_limits<decltype(cpp)>::max
    linkageType: ''
    returnType: void
    signature: "void RawImageData::RawImageData(RawImageType type, const iPoint2D&
      _dim, int _bpc,\n                           int _cpp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:76,1
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:78,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:83,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:83,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:89,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:89,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:94,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:96,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:99,1
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:104,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: rawspeed::RawImageData::poisonPadding
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (isAligned(pitch, alignment))
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (padding > 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (isAligned(pitch, alignment))
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (isAligned(&img(j, 0), alignment))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: rawspeed::RawImageData::createData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::RawImageData::isAllocated
    - img
    - implicit_cast<int>
    - roundUp
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - isAligned
    - ThrowRDE
    - assert
    - resize
    - __has_feature
    - static_cast<size_t>
    - rawspeed::RawImageData::poisonPadding
    linkageType: ''
    returnType: void
    signature: void RawImageData::createData()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:120,1
    - Dst: rawspeed::ASan::PoisonMemoryRegion
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:123,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed::RawImageData::poisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::ASan::PoisonMemoryRegion
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - end
    linkageType: ''
    returnType: void
    signature: void RawImageData::poisonPadding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rawspeed::RawImageData::poisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::poisonPadding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:139,1
    - Dst: rawspeed::ASan::UnPoisonMemoryRegion
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:142,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: rawspeed::RawImageData::unpoisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ASan::UnPoisonMemoryRegion
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - end
    linkageType: ''
    returnType: void
    signature: void RawImageData::unpoisonPadding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: rawspeed::RawImageData::unpoisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::unpoisonPadding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:154,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:155,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: rawspeed::RawImageData::setCpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::RawImageData::isAllocated
    linkageType: ''
    returnType: void
    signature: void RawImageData::setCpp(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: RAWSPEED_READONLY RawImageData::getCropOffset() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D RAWSPEED_READONLY RawImageData::getCropOffset() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:176,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:177,1
    - Dst: iRectangle2D::dim::isThisInside
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:179,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:180,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:186,1
    - Dst: getDcrawFilter
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:192,1
    - Dst: getDcrawFilter
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:192,1
    - Dst: shiftRight
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:193,1
    - Dst: shiftDown
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - crop
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 199
    functionName: rawspeed::RawImageData::subFrame
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - shiftRight
    - writeLog
    - shiftDown
    - iRectangle2D::dim::isThisInside
    - ThrowRDE
    - getDcrawFilter
    - iRectangle2D::hasPositiveArea
    linkageType: ''
    returnType: void
    signature: void RawImageData::subFrame(iRectangle2D crop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:202,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:203,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:204,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:205,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:205,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:206,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:206,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:207,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mBadPixelMap.empty())
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: rawspeed::RawImageData::createBadPixelMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageData::isAllocated
    - empty
    - roundUp
    - implicit_cast<uint32_t>
    - ThrowRDE
    - assert
    - roundUpDivisionSafe
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void RawImageData::createBadPixelMap()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:213,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:216,1
    - Dst: rawspeed::RawImageData::createBadPixelMap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:217,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:223,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:223,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:224,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:224,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pos_x < static_cast<uint16_t>(uncropped_dim.x))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (pos_y < static_cast<uint16_t>(uncropped_dim.y))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 230
    functionName: rawspeed::RawImageData::transferBadPixelsToMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - empty
    - static_cast<uint16_t>
    - assert
    - rawspeed::RawImageData::createBadPixelMap
    - clear
    linkageType: ''
    returnType: void
    signature: void RawImageData::transferBadPixelsToMap()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::transferBadPixelsToMap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:236,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:239,1
    - Dst: rawspeed::RawImageData::startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:240,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:244,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:245,1
    - Dst: getDataUncropped
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:256,1
    - Dst: getDataUncropped
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 269
    functionName: rawspeed::RawImageData::fixBadPixels
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::RawImageData::startWorker
    - rawspeed::RawImageData::transferBadPixelsToMap
    - end
    - begin
    - getDataUncropped
    linkageType: ''
    returnType: void
    signature: void RawImageData::fixBadPixels()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:275,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:276,1
    - Dst: rawspeed_get_number_of_processor_cores
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:282,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:291,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - task
    - cropped
    argTypes:
    - RawImageWorker::RawImageWorkerTask
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 296
    functionName: rawspeed::RawImageData::startWorker
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - rawspeed_get_number_of_processor_cores
    - std::min
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void RawImageData::startWorker(const RawImageWorker::RawImageWorkerTask
      task,\n                               bool cropped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:302,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:302,1
    - Dst: getBlock
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:306,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: block
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:316,1
    - Dst: fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: rawspeed::RawImageData::fixBadPixelsThread
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - fixBadPixel
    - auto::end
    - data
    - block
    - auto::begin
    - Array2DRef
    - getBlock
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void RawImageData::fixBadPixelsThread(int start_y, int end_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getOverlap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iRectangle2D::area
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:329,1
    - Dst: rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:332,1
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:333,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:333,1
    - Dst: iRectangle2D::getLeft
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:334,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - area
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: rawspeed::RawImageData::clearArea
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - iRectangle2D::getTop
    - iRectangle2D::getLeft
    - iRectangle2D::area
    - iRectangle2D::getOverlap
    - iRectangle2D::getWidth
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::getBottom
    - rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
    linkageType: ''
    returnType: void
    signature: void RawImageData::clearArea(iRectangle2D area)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: rawspeed::out
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out(y, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageWorker::performTask
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _img
    - _task
    - _start_y
    - _end_y
    argTypes:
    - RawImageData*
    - RawImageWorkerTask
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: rawspeed::RawImageWorker::RawImageWorker
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageWorker::performTask
    linkageType: ''
    returnType: void
    signature: "void RawImageWorker::RawImageWorker(RawImageData* _img, RawImageWorkerTask
      _task,\n                               int _start_y, int _end_y) noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: scaleValues
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:351,1
    - Dst: fixBadPixelsThread
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:354,1
    - Dst: doLookup
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:357,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:360,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:363,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:363,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:365,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:365,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:367,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:367,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: rawspeed::RawImageWorker::performTask
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - setError
    - __builtin_unreachable
    - assert
    - scaleValues
    - doLookup
    - what
    - fixBadPixelsThread
    linkageType: ''
    returnType: void
    signature: void RawImageWorker::performTask() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: rawspeed::RawImageData::sixteenBitLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageData::startWorker
    linkageType: ''
    returnType: void
    signature: void RawImageData::sixteenBitLookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::unique_ptr<TableLookUp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: rawspeed::RawImageData::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RawImageData::setTable(std::unique_ptr<TableLookUp> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:386,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:386,1
    - Dst: std::make_unique<TableLookUp>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:388,1
    - Dst: auto::setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:389,1
    - Dst: rawspeed::RawImageData::setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:390,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' table_'
    - dither
    argTypes:
    - std::vector<uint16_t>
    - bool
    assertStmts:
    - condition: (!table_.empty())
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: rawspeed::RawImageData::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - empty
    - std::move
    - std::make_unique<TableLookUp>
    - rawspeed::RawImageData::setTable
    - assert
    - auto::setTable
    linkageType: ''
    returnType: void
    signature: void RawImageData::setTable(const std::vector<uint16_t>& table_, bool
      dither)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rawspeed::RawImageData::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:59,1
    - Dst: std::numeric_limits<decltype(cpp)>::max
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:61,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:62,1
    - Dst: rawspeed::RawImageData::createData
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - type
    - ' _dim'
    - _bpc
    - _cpp
    argTypes:
    - RawImageType
    - iPoint2D
    - int
    - int
    assertStmts:
    - condition: (_bpc > 0)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: rawspeed::RawImageData::RawImageData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - assert
    - rawspeed::RawImageData::createData
    - std::numeric_limits<decltype(cpp)>::max
    linkageType: ''
    returnType: void
    signature: "void RawImageData::RawImageData(RawImageType type, const iPoint2D&
      _dim, int _bpc,\n                           int _cpp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:76,1
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:78,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:83,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:83,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:89,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:89,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:94,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:96,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:99,1
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:104,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:108,1
    - Dst: rawspeed::RawImageData::poisonPadding
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (isAligned(pitch, alignment))
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (padding > 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (isAligned(pitch, alignment))
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (isAligned(&img(j, 0), alignment))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: rawspeed::RawImageData::createData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::RawImageData::isAllocated
    - img
    - implicit_cast<int>
    - roundUp
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - isAligned
    - ThrowRDE
    - assert
    - resize
    - __has_feature
    - static_cast<size_t>
    - rawspeed::RawImageData::poisonPadding
    linkageType: ''
    returnType: void
    signature: void RawImageData::createData()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:120,1
    - Dst: rawspeed::ASan::PoisonMemoryRegion
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:123,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: rawspeed::RawImageData::poisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ASan::PoisonMemoryRegion
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - end
    linkageType: ''
    returnType: void
    signature: void RawImageData::poisonPadding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rawspeed::RawImageData::poisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::poisonPadding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:139,1
    - Dst: rawspeed::ASan::UnPoisonMemoryRegion
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:142,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: rawspeed::RawImageData::unpoisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ASan::UnPoisonMemoryRegion
    - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    - end
    linkageType: ''
    returnType: void
    signature: void RawImageData::unpoisonPadding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: rawspeed::RawImageData::unpoisonPadding
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData::unpoisonPadding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:154,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:155,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: rawspeed::RawImageData::setCpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::RawImageData::isAllocated
    linkageType: ''
    returnType: void
    signature: void RawImageData::setCpp(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: RAWSPEED_READONLY RawImageData::getCropOffset() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D RAWSPEED_READONLY RawImageData::getCropOffset() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:176,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:177,1
    - Dst: iRectangle2D::dim::isThisInside
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:179,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:180,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:186,1
    - Dst: getDcrawFilter
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:192,1
    - Dst: getDcrawFilter
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:192,1
    - Dst: shiftRight
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:193,1
    - Dst: shiftDown
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - crop
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 199
    functionName: rawspeed::RawImageData::subFrame
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - shiftRight
    - writeLog
    - shiftDown
    - iRectangle2D::dim::isThisInside
    - ThrowRDE
    - getDcrawFilter
    - iRectangle2D::hasPositiveArea
    linkageType: ''
    returnType: void
    signature: void RawImageData::subFrame(iRectangle2D crop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::isAllocated
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:202,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:203,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:204,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:205,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:205,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:206,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:206,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:207,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mBadPixelMap.empty())
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: rawspeed::RawImageData::createBadPixelMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::RawImageData::isAllocated
    - empty
    - roundUp
    - implicit_cast<uint32_t>
    - ThrowRDE
    - assert
    - roundUpDivisionSafe
    - resize
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void RawImageData::createBadPixelMap()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:213,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:216,1
    - Dst: rawspeed::RawImageData::createBadPixelMap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:217,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:223,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:223,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:224,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:224,1
    - Dst: clear
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pos_x < static_cast<uint16_t>(uncropped_dim.x))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    - condition: (pos_y < static_cast<uint16_t>(uncropped_dim.y))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 230
    functionName: rawspeed::RawImageData::transferBadPixelsToMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - empty
    - static_cast<uint16_t>
    - assert
    - rawspeed::RawImageData::createBadPixelMap
    - clear
    linkageType: ''
    returnType: void
    signature: void RawImageData::transferBadPixelsToMap()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::transferBadPixelsToMap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:236,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:239,1
    - Dst: rawspeed::RawImageData::startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:240,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:244,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:245,1
    - Dst: getDataUncropped
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:256,1
    - Dst: getDataUncropped
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 269
    functionName: rawspeed::RawImageData::fixBadPixels
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::RawImageData::startWorker
    - rawspeed::RawImageData::transferBadPixelsToMap
    - end
    - begin
    - getDataUncropped
    linkageType: ''
    returnType: void
    signature: void RawImageData::fixBadPixels()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:275,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:276,1
    - Dst: rawspeed_get_number_of_processor_cores
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:282,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:291,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - task
    - cropped
    argTypes:
    - RawImageWorker::RawImageWorkerTask
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 296
    functionName: rawspeed::RawImageData::startWorker
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 3
    functionsReached:
    - rawspeed_get_number_of_processor_cores
    - std::min
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void RawImageData::startWorker(const RawImageWorker::RawImageWorkerTask
      task,\n                               bool cropped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:302,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:302,1
    - Dst: getBlock
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:306,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:309,1
    - Dst: block
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:316,1
    - Dst: fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: rawspeed::RawImageData::fixBadPixelsThread
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - fixBadPixel
    - auto::end
    - data
    - block
    - auto::begin
    - Array2DRef
    - getBlock
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void RawImageData::fixBadPixelsThread(int start_y, int end_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getOverlap
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:327,1
    - Dst: iRectangle2D::area
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:329,1
    - Dst: rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:332,1
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:333,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:333,1
    - Dst: iRectangle2D::getLeft
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:334,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - area
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: rawspeed::RawImageData::clearArea
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - iRectangle2D::getTop
    - iRectangle2D::getLeft
    - iRectangle2D::area
    - iRectangle2D::getOverlap
    - iRectangle2D::getWidth
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::getBottom
    - rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
    linkageType: ''
    returnType: void
    signature: void RawImageData::clearArea(iRectangle2D area)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: rawspeed::out
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void out(y, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageWorker::performTask
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _img
    - _task
    - _start_y
    - _end_y
    argTypes:
    - RawImageData*
    - RawImageWorkerTask
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: rawspeed::RawImageWorker::RawImageWorker
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageWorker::performTask
    linkageType: ''
    returnType: void
    signature: "void RawImageWorker::RawImageWorker(RawImageData* _img, RawImageWorkerTask
      _task,\n                               int _start_y, int _end_y) noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: scaleValues
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:351,1
    - Dst: fixBadPixelsThread
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:354,1
    - Dst: doLookup
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:357,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:360,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:363,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:363,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:365,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:365,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:367,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:367,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: rawspeed::RawImageWorker::performTask
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 2
    functionsReached:
    - setError
    - __builtin_unreachable
    - assert
    - scaleValues
    - doLookup
    - what
    - fixBadPixelsThread
    linkageType: ''
    returnType: void
    signature: void RawImageWorker::performTask() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: rawspeed::RawImageData::sixteenBitLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageData::startWorker
    linkageType: ''
    returnType: void
    signature: void RawImageData::sixteenBitLookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::unique_ptr<TableLookUp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: rawspeed::RawImageData::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RawImageData::setTable(std::unique_ptr<TableLookUp> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:386,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:386,1
    - Dst: std::make_unique<TableLookUp>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:388,1
    - Dst: auto::setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:389,1
    - Dst: rawspeed::RawImageData::setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:390,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' table_'
    - dither
    argTypes:
    - std::vector<uint16_t>
    - bool
    assertStmts:
    - condition: (!table_.empty())
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: rawspeed::RawImageData::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.cpp
    functionUses: 2
    functionsReached:
    - empty
    - std::move
    - std::make_unique<TableLookUp>
    - rawspeed::RawImageData::setTable
    - assert
    - auto::setTable
    linkageType: ''
    returnType: void
    signature: void RawImageData::setTable(const std::vector<uint16_t>& table_, bool
      dither)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' err'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: rawspeed::ErrorLog::setError
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void ErrorLog::setError(const std::string& err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - many
    - firstErr
    argTypes:
    - unsigned
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: rawspeed::ErrorLog::isTooManyErrors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool ErrorLog::isTooManyErrors(unsigned many, std::string* firstErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '&& ErrorLog::getErrors()'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> && ErrorLog::getErrors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' err'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: rawspeed::ErrorLog::setError
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void ErrorLog::setError(const std::string& err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - many
    - firstErr
    argTypes:
    - unsigned
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: rawspeed::ErrorLog::isTooManyErrors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool ErrorLog::isTooManyErrors(unsigned many, std::string* firstErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '&& ErrorLog::getErrors()'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> && ErrorLog::getErrors()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: rawspeed::RawImageDataFloat::RawImageDataFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::RawImageDataFloat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _dim'
    - _cpp
    argTypes:
    - iPoint2D
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: rawspeed::RawImageDataFloat::RawImageDataFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::RawImageDataFloat(const iPoint2D& _dim, uint32_t
      _cpp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:52,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:65,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:67,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:70,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:78,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:80,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:83,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:90,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:90,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:91,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:105,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:105,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:106,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 118
    functionName: rawspeed::RawImageDataFloat::calculateBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - img
    - data
    - Array2DRef
    - ThrowRDE
    - std::array::fill
    - getAsArray1DRef
    - static_cast<int>
    - implicit_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::calculateBlackAreas()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:121,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:126,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:131,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:132,1
    - Dst: max
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:133,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:137,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:138,1
    - Dst: rawspeed::RawImageDataFloat::calculateBlackAreas
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:143,1
    - Dst: startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 146
    functionName: rawspeed::RawImageDataFloat::scaleBlackWhite
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - min
    - img
    - empty
    - rawspeed::RawImageDataFloat::calculateBlackAreas
    - writeLog
    - startWorker
    - static_cast<int>
    - max
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::scaleBlackWhite()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:149,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:154,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:162,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:162,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:163,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:163,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:167,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: rawspeed::RawImageDataFloat::scaleValues
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - img
    - height
    - assert
    - width
    - getAsArray1DRef
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::scaleValues(int start_y, int end_y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:178,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:181,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:186,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:186,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:191,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:194,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:195,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:196,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:196,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:201,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:204,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:205,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:206,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:206,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:212,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:215,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:216,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:217,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:217,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:222,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:225,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:226,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:227,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:227,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:235,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:242,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:254,1
    - Dst: rawspeed::RawImageDataFloat::fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:259,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - x
    - y
    - component
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 260
    functionName: rawspeed::RawImageDataFloat::fixBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 1
    functionsReached:
    - std::abs
    - getF32DataAsUncroppedArray2DRef
    - img
    - rawspeed::RawImageDataFloat::fixBadPixel
    - data
    - bad
    - Array2DRef
    - std::array::fill
    - static_cast<int>
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::fixBadPixel(uint32_t x, uint32_t y, int component)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: rawspeed::RawImageDataFloat::doLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::doLookup(int start_y, int end_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<float*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:268,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:270,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - dst
    - random
    argTypes:
    - uint16_t
    - std::byte*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: rawspeed::RawImageDataFloat::setWithLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - static_cast<float>
    - reinterpret_cast<float*>
    linkageType: ''
    returnType: void
    signature: "void RawImageDataFloat::setWithLookUp(uint16_t value, std::byte* dst,\n
      \                                     uint32_t* random)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: rawspeed::RawImageDataFloat::RawImageDataFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::RawImageDataFloat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _dim'
    - _cpp
    argTypes:
    - iPoint2D
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: rawspeed::RawImageDataFloat::RawImageDataFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::RawImageDataFloat(const iPoint2D& _dim, uint32_t
      _cpp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:52,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:65,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:67,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:70,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:78,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:80,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:83,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:90,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:90,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:91,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:105,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:105,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:106,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 118
    functionName: rawspeed::RawImageDataFloat::calculateBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 1
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - img
    - data
    - Array2DRef
    - ThrowRDE
    - std::array::fill
    - getAsArray1DRef
    - static_cast<int>
    - implicit_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::calculateBlackAreas()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:121,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:126,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:131,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:132,1
    - Dst: max
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:133,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:137,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:138,1
    - Dst: rawspeed::RawImageDataFloat::calculateBlackAreas
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:143,1
    - Dst: startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 146
    functionName: rawspeed::RawImageDataFloat::scaleBlackWhite
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - min
    - img
    - empty
    - rawspeed::RawImageDataFloat::calculateBlackAreas
    - writeLog
    - startWorker
    - static_cast<int>
    - max
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::scaleBlackWhite()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:149,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:153,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:154,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:162,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:162,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:163,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:163,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:167,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: rawspeed::RawImageDataFloat::scaleValues
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - img
    - height
    - assert
    - width
    - getAsArray1DRef
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::scaleValues(int start_y, int end_y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:178,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:181,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:186,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:186,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:191,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:194,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:195,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:196,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:196,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:201,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:204,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:205,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:206,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:206,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:212,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:215,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:216,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:217,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:217,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:222,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:225,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:226,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:227,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:227,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:235,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:242,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:254,1
    - Dst: rawspeed::RawImageDataFloat::fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:259,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - x
    - y
    - component
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 260
    functionName: rawspeed::RawImageDataFloat::fixBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - getF32DataAsUncroppedArray2DRef
    - img
    - rawspeed::RawImageDataFloat::fixBadPixel
    - data
    - bad
    - Array2DRef
    - std::array::fill
    - static_cast<int>
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::fixBadPixel(uint32_t x, uint32_t y, int component)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: rawspeed::RawImageDataFloat::doLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void RawImageDataFloat::doLookup(int start_y, int end_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<float*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:268,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:270,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - value
    - dst
    - random
    argTypes:
    - uint16_t
    - std::byte*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: rawspeed::RawImageDataFloat::setWithLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - static_cast<float>
    - reinterpret_cast<float*>
    linkageType: ''
    returnType: void
    signature: "void RawImageDataFloat::setWithLookUp(uint16_t value, std::byte* dst,\n
      \                                     uint32_t* random)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - priority
    - format
    argTypes:
    - DEBUG_PRIO
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: writeLog
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Common.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void writeLog(DEBUG_PRIO priority, const char* format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~RawImageData()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawImageData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::RawImageData::getCpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getCpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: rawspeed::RawImageData::getBpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getBpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: rawspeed::RawImageData::getDataType
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rawspeed::RawImageType
    signature: rawspeed::RawImageType getDataType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: rawspeed::RawImageData::isAllocated
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 6
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool isAllocated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: rawspeed::RawImageData::RawImageData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: operator->() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - p
    argTypes:
    - RawImageData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: rawspeed::RawImage::RawImage
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImage(RawImageData* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<RawImageData>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: rawspeed::RawImage::RawImage
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RawImage(std::shared_ptr<RawImageData> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: rawspeed::RawImage::get
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageData
    signature: RawImageData * get()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:268,1
    - Dst: std::make_shared<RawImageDataU16>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:268,1
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:270,1
    - Dst: std::make_shared<RawImageDataFloat>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:270,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:272,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - RawImageType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: rawspeed::RawImage::create
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - writeLog
    - std::make_shared<RawImageDataU16>
    - __builtin_unreachable
    - rawspeed::RawImage::RawImage
    - std::make_shared<RawImageDataFloat>
    linkageType: ''
    returnType: RawImage
    signature: RawImage RawImage::create(RawImageType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:280,1
    - Dst: std::make_shared<RawImageDataU16>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:280,1
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:282,1
    - Dst: std::make_shared<RawImageDataFloat>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:283,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:285,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' dim'
    - type
    - componentsPerPixel
    argTypes:
    - iPoint2D
    - RawImageType
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: rawspeed::RawImage::create
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - writeLog
    - std::make_shared<RawImageDataU16>
    - __builtin_unreachable
    - rawspeed::RawImage::RawImage
    - std::make_shared<RawImageDataFloat>
    linkageType: ''
    returnType: RawImage
    signature: "RawImage RawImage::create(const iPoint2D& dim, RawImageType type,\n
      \                                uint32_t componentsPerPixel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:291,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:293,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:293,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:298,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:298,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(dataType == RawImageType::UINT16 &&\n         \"Attempting to access
        floating-point buffer as uint16_t.\")"
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - condition: (!data.empty() && "Data not yet allocated.")
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - empty
    - data
    - reinterpret_cast<uint16_t*>
    - assert
    - static_cast<int>
    linkageType: ''
    returnType: Array2DRef<uint16_t>
    signature: Array2DRef<uint16_t> RawImageData::getU16DataAsUncroppedArray2DRef()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached:
    - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: CroppedArray2DRef<uint16_t>
    signature: CroppedArray2DRef<uint16_t> RawImageData::getU16DataAsCroppedArray2DRef()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:311,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:313,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:313,1
    - Dst: reinterpret_cast<float*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:318,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:318,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(dataType == RawImageType::F32 &&\n         \"Attempting to access
        integer buffer as float.\")"
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - condition: (!data.empty() && "Data not yet allocated.")
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - empty
    - data
    - assert
    - reinterpret_cast<float*>
    - static_cast<int>
    linkageType: ''
    returnType: Array2DRef<float>
    signature: Array2DRef<float> RawImageData::getF32DataAsUncroppedArray2DRef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: rawspeed::RawImageData::getF32DataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: CroppedArray2DRef<float>
    signature: CroppedArray2DRef<float> RawImageData::getF32DataAsCroppedArray2DRef()
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:333,1
    - Dst: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:335,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 6
    functionsReached:
    - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    - __builtin_unreachable
    linkageType: ''
    returnType: Array2DRef<std::byte>
    signature: Array2DRef<std::byte> RawImageData::getByteDataAsUncroppedArray2DRef()
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:347,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - value
    - dst
    - random
    argTypes:
    - uint16_t
    - std::byte*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: rawspeed::RawImageDataU16::setWithLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint16_t*>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void RawImageDataU16::setWithLookUp(uint16_t value, std::byte* dst,\n
      \                                          uint32_t* random)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard(const RawImageCurveGuard&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard(RawImageCurveGuard&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 374
    functionName: '& operator=(const RawImageCurveGuard&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageCurveGuard
    signature: RawImageCurveGuard & operator=(const RawImageCurveGuard&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 375
    functionName: '& operator=(RawImageCurveGuard&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageCurveGuard
    signature: RawImageCurveGuard & operator=(RawImageCurveGuard&&) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - raw
    - ' curve_'
    - uncorrectedRawValues_
    argTypes:
    - RawImage*
    - std::vector<uint16_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - setTable
    linkageType: ''
    returnType: void
    signature: "void RawImageCurveGuard(const RawImage* raw, const std::vector<uint16_t>&
      curve_,\n                     bool uncorrectedRawValues_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:389,1
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: ~RawImageCurveGuard()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - setTable
    linkageType: ''
    returnType: void
    signature: void ~RawImageCurveGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~RawImageData()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawImageData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::RawImageData::getCpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getCpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: rawspeed::RawImageData::getBpp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getBpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: rawspeed::RawImageData::getDataType
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rawspeed::RawImageType
    signature: rawspeed::RawImageType getDataType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: rawspeed::RawImageData::isAllocated
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 6
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool isAllocated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: rawspeed::RawImageData::RawImageData
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: operator->() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - p
    argTypes:
    - RawImageData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: rawspeed::RawImage::RawImage
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImage(RawImageData* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<RawImageData>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: rawspeed::RawImage::RawImage
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RawImage(std::shared_ptr<RawImageData> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: rawspeed::RawImage::get
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageData
    signature: RawImageData * get()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:268,1
    - Dst: std::make_shared<RawImageDataU16>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:268,1
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:270,1
    - Dst: std::make_shared<RawImageDataFloat>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:270,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:272,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - RawImageType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: rawspeed::RawImage::create
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - writeLog
    - std::make_shared<RawImageDataU16>
    - __builtin_unreachable
    - rawspeed::RawImage::RawImage
    - std::make_shared<RawImageDataFloat>
    linkageType: ''
    returnType: RawImage
    signature: RawImage RawImage::create(RawImageType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:280,1
    - Dst: std::make_shared<RawImageDataU16>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:280,1
    - Dst: rawspeed::RawImage::RawImage
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:282,1
    - Dst: std::make_shared<RawImageDataFloat>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:283,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:285,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' dim'
    - type
    - componentsPerPixel
    argTypes:
    - iPoint2D
    - RawImageType
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: rawspeed::RawImage::create
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - writeLog
    - std::make_shared<RawImageDataU16>
    - __builtin_unreachable
    - rawspeed::RawImage::RawImage
    - std::make_shared<RawImageDataFloat>
    linkageType: ''
    returnType: RawImage
    signature: "RawImage RawImage::create(const iPoint2D& dim, RawImageType type,\n
      \                                uint32_t componentsPerPixel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:291,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:293,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:293,1
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:298,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:298,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(dataType == RawImageType::UINT16 &&\n         \"Attempting to access
        floating-point buffer as uint16_t.\")"
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - condition: (!data.empty() && "Data not yet allocated.")
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached:
    - empty
    - data
    - reinterpret_cast<uint16_t*>
    - assert
    - static_cast<int>
    linkageType: ''
    returnType: Array2DRef<uint16_t>
    signature: Array2DRef<uint16_t> RawImageData::getU16DataAsUncroppedArray2DRef()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached:
    - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: CroppedArray2DRef<uint16_t>
    signature: CroppedArray2DRef<uint16_t> RawImageData::getU16DataAsCroppedArray2DRef()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:311,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:313,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:313,1
    - Dst: reinterpret_cast<float*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:318,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:318,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(dataType == RawImageType::F32 &&\n         \"Attempting to access
        integer buffer as float.\")"
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - condition: (!data.empty() && "Data not yet allocated.")
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 2
    functionsReached:
    - empty
    - data
    - assert
    - reinterpret_cast<float*>
    - static_cast<int>
    linkageType: ''
    returnType: Array2DRef<float>
    signature: Array2DRef<float> RawImageData::getF32DataAsUncroppedArray2DRef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: rawspeed::RawImageData::getF32DataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: CroppedArray2DRef<float>
    signature: CroppedArray2DRef<float> RawImageData::getF32DataAsCroppedArray2DRef()
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:333,1
    - Dst: rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:335,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 6
    functionsReached:
    - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
    - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
    - __builtin_unreachable
    linkageType: ''
    returnType: Array2DRef<std::byte>
    signature: Array2DRef<std::byte> RawImageData::getByteDataAsUncroppedArray2DRef()
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint16_t*>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:347,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - value
    - dst
    - random
    argTypes:
    - uint16_t
    - std::byte*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: rawspeed::RawImageDataU16::setWithLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint16_t*>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void RawImageDataU16::setWithLookUp(uint16_t value, std::byte* dst,\n
      \                                          uint32_t* random)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard(const RawImageCurveGuard&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageCurveGuard(RawImageCurveGuard&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 374
    functionName: '& operator=(const RawImageCurveGuard&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageCurveGuard
    signature: RawImageCurveGuard & operator=(const RawImageCurveGuard&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 375
    functionName: '& operator=(RawImageCurveGuard&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawImageCurveGuard
    signature: RawImageCurveGuard & operator=(RawImageCurveGuard&&) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - raw
    - ' curve_'
    - uncorrectedRawValues_
    argTypes:
    - RawImage*
    - std::vector<uint16_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: rawspeed::RawImageCurveGuard::RawImageCurveGuard
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - setTable
    linkageType: ''
    returnType: void
    signature: "void RawImageCurveGuard(const RawImage* raw, const std::vector<uint16_t>&
      curve_,\n                     bool uncorrectedRawValues_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:389,1
    - Dst: setTable
      Src: /src/librawspeed/src/librawspeed/common/RawImage.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: ~RawImageCurveGuard()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImage.h
    functionUses: 0
    functionsReached:
    - setTable
    linkageType: ''
    returnType: void
    signature: void ~RawImageCurveGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - CroppedArray2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(CroppedArray2DRef<T> img)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:70,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (*col % ri->getCpp() == 0 && "Column is width * cpp")
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 1
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - rawspeed::getImageCropAsRectangle
    - assert
    - getDataType
    - getCpp
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(const RawImage& ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::is_same<T, uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:88,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:89,1
    - Dst: std::is_same<T, float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:90,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:91,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: rawspeed::getDataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - __builtin_unreachable
    - std::is_same<T, float>
    - std::is_same<T, uint16_t>
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> getDataAsCroppedArray2DRef(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - CroppedArray2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(CroppedArray2DRef<T> img)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:70,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (*col % ri->getCpp() == 0 && "Column is width * cpp")
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 2
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - rawspeed::getImageCropAsRectangle
    - assert
    - getDataType
    - getCpp
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(const RawImage& ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::is_same<T, uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:88,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:89,1
    - Dst: std::is_same<T, float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:90,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:91,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: rawspeed::getDataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - __builtin_unreachable
    - std::is_same<T, float>
    - std::is_same<T, uint16_t>
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> getDataAsCroppedArray2DRef(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:111,1
    - Dst: std::uncaught_exceptions
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(std::uncaught_exceptions() == 0 &&\n           \"Creating DngOpcode
        during call stack unwinding?\")"
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: (integrated_subimg_)
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::uncaught_exceptions
    linkageType: ''
    returnType: integrated_subimg
    signature: integrated_subimg (integrated_subimg_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode(const DngOpcode&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode(DngOpcode&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operator=(const DngOpcode&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngOpcode
    signature: DngOpcode & operator=(const DngOpcode&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(DngOpcode&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngOpcode
    signature: DngOpcode & operator=(DngOpcode&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:122,1
    - Dst: std::uncaught_exceptions
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "((std::uncaught_exceptions() > 0 || setup_was_called) &&\n           \"Derived
        classes did not call our setup()!\")"
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: ~DngOpcode()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void ~DngOpcode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:132,1
    - Dst: getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: "(integrated_subimg == getImageCropAsRectangle(ri) &&\n           \"Current
        image sub-crop does not match the expected one!\")"
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: rawspeed::DngOpcodes::DngOpcode::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - getImageCropAsRectangle
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: DngOpcodes::DngOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DngOpcode::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:157,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::FixBadPixelsConstant
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getU32
    linkageType: ''
    returnType: void
    signature: "void FixBadPixelsConstant(const RawImage& ri, ByteStream& bs,\n                                const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:162,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:166,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:168,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    - getCpp
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:174,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:175,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:179,1
    - Dst: mBadPixelPositions::push_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getCropOffset
    - mBadPixelPositions::push_back
    - getU16DataAsCroppedArray2DRef
    - img
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: DngOpcodes::FixBadPixelsConstant::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::FixBadPixelsConstant::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:204,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:205,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:206,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:207,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:212,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:215,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:217,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:217,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:218,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:218,1
    - Dst: setTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:221,1
    - Dst: setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:222,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:223,1
    - Dst: isThisInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts:
    - condition: (roi.isThisInside(subImage))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: rawspeed::DngOpcodes::ROIOpcode::ROIOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - setTopLeft
    - iRectangle2D::getTopLeft
    - iRectangle2D::isPointInsideInclusive
    - ThrowRDE
    - assert
    - setBottomRightAbsolute
    - getU32
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: void
    signature: "void ROIOpcode(const RawImage& ri, ByteStream& bs,\n                     const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: rawspeed::DngOpcodes::ROIOpcode::getRoi
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getRoi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: DngOpcodes::ROIOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::ROIOpcode::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: rawspeed::DngOpcodes::DummyROIOpcode::DummyROIOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: "void DummyROIOpcode(const RawImage& ri, ByteStream& bs,\n                          const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:251,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (false && "You should not be calling this.")
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: rawspeed::DngOpcodes::DummyROIOpcode::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: DngOpcodes::DummyROIOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DummyROIOpcode::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:275,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:277,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:278,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:279,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:282,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:283,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:284,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:285,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:288,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:288,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:290,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:291,1
    - Dst: iRectangle2D::isPointInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:293,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:294,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:296,1
    - Dst: DummyROIOpcode::getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:304,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:305,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:305,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:307,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:307,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:308,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:308,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:309,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:310,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:311,1
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:311,1
    - Dst: iRectangle2D::getLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts:
    - condition: (badRect.isThisInside(fullImage))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 316
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 316
    functionName: rawspeed::DngOpcodes::FixBadPixelsList::FixBadPixelsList
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - DummyROIOpcode::getRoi
    - iRectangle2D::getTop
    - iRectangle2D::getLeft
    - setPosition
    - reserve
    - size
    - emplace_back
    - skipBytes
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - getUncroppedDim
    - ThrowRDE
    - iRectangle2D::getWidth
    - assert
    - iRectangle2D::isPointInside
    - getPosition
    - getU32
    linkageType: ''
    returnType: void
    signature: "void FixBadPixelsList(const RawImage& ri, ByteStream& bs,\n                            const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:320,1
    - Dst: mBadPixelPositions::begin
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:320,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:321,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: rawspeed::DngOpcodes::FixBadPixelsList::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - mBadPixelPositions::insert
    - begin
    - end
    - mBadPixelPositions::begin
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: DngOpcodes::FixBadPixelsList::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::FixBadPixelsList::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:339,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: rawspeed::DngOpcodes::TrimBounds::TrimBounds
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getRoi
    linkageType: ''
    returnType: void
    signature: "void TrimBounds(const RawImage& ri, ByteStream& bs,\n                      iRectangle2D&
      integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:343,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: rawspeed::DngOpcodes::TrimBounds::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - subFrame
    - getRoi
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: DngOpcodes::TrimBounds::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::TrimBounds::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:364,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:365,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:367,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:367,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:368,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:369,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:370,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:373,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:374,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:376,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:378,1
    - Dst: getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:378,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:379,1
    - Dst: getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:379,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: rawspeed::DngOpcodes::PixelOpcode::PixelOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getRoi
    - getHeight
    - getCpp
    - getWidth
    - getU32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void PixelOpcode(const RawImage& ri, ByteStream& bs,\n                       const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: rawspeed::DngOpcodes::PixelOpcode::getPitch
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void getPitch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDataAsCroppedArray2DRef<T>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:392,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:393,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:394,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:402,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:402,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:403,1
    - Dst: op
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' ri'
    - op
    argTypes:
    - RawImage
    - OP
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 408
    functionName: rawspeed::DngOpcodes::PixelOpcode::applyOP
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - img
    - implicit_cast<int>
    - op
    - getRoi
    - getLeft
    - roundUpDivisionSafe
    - getCpp
    - getTop
    - getDataAsCroppedArray2DRef<T>
    linkageType: ''
    returnType: void
    signature: void applyOP(const RawImage& ri, OP op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: DngOpcodes::PixelOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::PixelOpcode::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:427,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:429,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: rawspeed::DngOpcodes::LookupOpcode::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: rawspeed::DngOpcodes::LookupOpcode::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - applyOP<uint16_t>
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: DngOpcodes::LookupOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::LookupOpcode::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:454,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:457,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:460,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:462,1
    - Dst: fill_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:463,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 464
    functionName: rawspeed::DngOpcodes::TableMap::TableMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getU16
    - size
    - ThrowRDE
    - fill_n
    - getU32
    linkageType: ''
    returnType: void
    signature: "void TableMap(const RawImage& ri, ByteStream& bs,\n                    const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: DngOpcodes::TableMap::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::TableMap::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:483,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:484,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:484,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:486,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:488,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:489,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:489,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:490,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:493,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:494,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:496,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:497,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:497,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:498,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:499,1
    - Dst: std::clamp<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:499,1
    - Dst: std::numeric_limits<uint16_t>::min
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:500,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: rawspeed::DngOpcodes::PolynomialMap::PolynomialMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<uint16_t>::min
    - vector::reserve
    - pow
    - std::generate_n
    - size
    - vector::size
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    - ThrowRDE
    - check
    - std::back_inserter
    - get
    - std::clamp<double>
    - resize
    - implicit_cast<Buffer::size_type>
    - getU32
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PolynomialMap(const RawImage& ri, ByteStream& bs,\n                         const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: DngOpcodes::PolynomialMap::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::PolynomialMap::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::select
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t select(uint32_t x, uint32_t /*y*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 522
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::select
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t select(uint32_t /*x*/, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::DeltaRowOrColBase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeltaRowOrColBase(const RawImage& ri, ByteStream& bs,\n                    const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: DngOpcodes::DeltaRowOrColBase::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DeltaRowOrColBase::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:540,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:543,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:546,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:546,1
    - Dst: valueIsOk
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:548,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:549,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:550,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:551,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: rawspeed::DngOpcodes::DeltaRowOrCol::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - valueIsOk
    - reserve
    - size
    - emplace_back
    - implicit_cast<double>
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) final
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:566,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:567,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:572,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: getPitch
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: getPitch
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:576,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:580,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:581,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:581,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:582,1
    - Dst: std::fpclassify
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:583,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:589,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    - f2iScale_
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 592
    functionName: rawspeed::DngOpcodes::DeltaRowOrCol::DeltaRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - std::generate_n
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - implicit_cast<double>
    - getPitch
    - ThrowRDE
    - getRoi
    - check
    - roundUpDivisionSafe
    - std::back_inserter
    - get
    - std::fpclassify
    - getU32
    linkageType: ''
    returnType: void
    signature: "void DeltaRowOrCol(const RawImage& ri, ByteStream& bs,\n                const
      iRectangle2D& integrated_subimg_, float f2iScale_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:606,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::valueIsOk
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - implicit_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool valueIsOk(float value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:613,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::OffsetPerRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    linkageType: ''
    returnType: void
    signature: "void OffsetPerRowOrCol(const RawImage& ri, ByteStream& bs,\n                             const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:617,1
    - Dst: rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:618,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:620,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:620,1
    - Dst: rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:623,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<float>
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - getDataType
    - rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<uint16_t>
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 645
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::valueIsOk
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool valueIsOk(float value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:651,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:652,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::ScalePerRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    linkageType: ''
    returnType: void
    signature: "void ScalePerRowOrCol(const RawImage& ri, ByteStream& bs,\n                            const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:656,1
    - Dst: rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:657,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:659,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:659,1
    - Dst: rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:662,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<float>
    - clampBits
    - rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<uint16_t>
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - getDataType
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:674,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:676,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:677,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:681,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:682,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:683,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:684,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:685,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:688,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:691,1
    - Dst: getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:693,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:696,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:697,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:699,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:701,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:703,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:704,1
    - Dst: rawspeed::DngOpcodes::Map
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:708,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:709,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:711,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:714,1
    - Dst: opConstructor
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:714,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:720,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:723,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:724,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:728,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - ' ri'
    - bs
    argTypes:
    - RawImage
    - ByteStream
    assertStmts:
    - condition: (opcodes.size() == opcode_count)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 730
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 730
    functionName: rawspeed::DngOpcodes::DngOpcodes
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::Map
    - ByteStream::getU32
    - reserve
    - ByteStream::getStream
    - ByteStream::getPosition
    - ByteStream::setPosition
    - emplace_back
    - size
    - opConstructor
    - ByteStream::skipBytes
    - ThrowRDE
    - getImageCropAsRectangle
    - ByteStream::getRemainSize
    - std::tie
    - assert
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DngOpcodes(const RawImage& ri, ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 734
    functionName: DngOpcodes::~DngOpcodes()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::~DngOpcodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:738,1
    - Dst: apply
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: rawspeed::DngOpcodes::applyOpCodes
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - setup
    - apply
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::applyOpCodes(const RawImage& ri) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Opcode>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: rawspeed::DngOpcodes::constructor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Opcode>
    linkageType: ''
    returnType: std::unique_ptr<DngOpcodes::DngOpcode>
    signature: "std::unique_ptr<DngOpcodes::DngOpcode> DngOpcodes::constructor(const
      RawImage& ri, ByteStream& bs,\n                        iRectangle2D& integrated_subimg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:756,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:758,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:760,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:762,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:766,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:769,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:772,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:775,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:778,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:780,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:785,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:790,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 802
    functionName: rawspeed::DngOpcodes::Map
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 1
    functionsReached:
    - make_pair
    linkageType: ''
    returnType: Optional<std::pair<const char*, DngOpcodes::constructor_t>>
    signature: Optional<std::pair<const char*, DngOpcodes::constructor_t>> DngOpcodes::Map(uint32_t
      code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - CroppedArray2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(CroppedArray2DRef<T> img)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:70,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (*col % ri->getCpp() == 0 && "Column is width * cpp")
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 3
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - rawspeed::getImageCropAsRectangle
    - assert
    - getDataType
    - getCpp
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(const RawImage& ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::is_same<T, uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:88,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:89,1
    - Dst: std::is_same<T, float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:90,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:91,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: rawspeed::getDataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - __builtin_unreachable
    - std::is_same<T, float>
    - std::is_same<T, uint16_t>
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> getDataAsCroppedArray2DRef(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - CroppedArray2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(CroppedArray2DRef<T> img)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:70,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: rawspeed::getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:79,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (*col % ri->getCpp() == 0 && "Column is width * cpp")
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: rawspeed::getImageCropAsRectangle
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 4
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - rawspeed::getImageCropAsRectangle
    - assert
    - getDataType
    - getCpp
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getImageCropAsRectangle(const RawImage& ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::is_same<T, uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:88,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:89,1
    - Dst: std::is_same<T, float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:90,1
    - Dst: getF32DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:91,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: rawspeed::getDataAsCroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsCroppedArray2DRef
    - getU16DataAsCroppedArray2DRef
    - __builtin_unreachable
    - std::is_same<T, float>
    - std::is_same<T, uint16_t>
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> getDataAsCroppedArray2DRef(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:111,1
    - Dst: std::uncaught_exceptions
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(std::uncaught_exceptions() == 0 &&\n           \"Creating DngOpcode
        during call stack unwinding?\")"
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: (integrated_subimg_)
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::uncaught_exceptions
    linkageType: ''
    returnType: integrated_subimg
    signature: integrated_subimg (integrated_subimg_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode(const DngOpcode&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::DngOpcodes::DngOpcode::DngOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcode(DngOpcode&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operator=(const DngOpcode&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngOpcode
    signature: DngOpcode & operator=(const DngOpcode&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(DngOpcode&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngOpcode
    signature: DngOpcode & operator=(DngOpcode&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:122,1
    - Dst: std::uncaught_exceptions
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "((std::uncaught_exceptions() > 0 || setup_was_called) &&\n           \"Derived
        classes did not call our setup()!\")"
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: ~DngOpcode()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void ~DngOpcode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:132,1
    - Dst: getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: "(integrated_subimg == getImageCropAsRectangle(ri) &&\n           \"Current
        image sub-crop does not match the expected one!\")"
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: rawspeed::DngOpcodes::DngOpcode::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 4
    functionsReached:
    - assert
    - getImageCropAsRectangle
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: DngOpcodes::DngOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DngOpcode::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:157,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::FixBadPixelsConstant
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getU32
    linkageType: ''
    returnType: void
    signature: "void FixBadPixelsConstant(const RawImage& ri, ByteStream& bs,\n                                const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:162,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:166,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:168,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    - getCpp
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:174,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:175,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:179,1
    - Dst: mBadPixelPositions::push_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: rawspeed::DngOpcodes::FixBadPixelsConstant::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getCropOffset
    - mBadPixelPositions::push_back
    - getU16DataAsCroppedArray2DRef
    - img
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: DngOpcodes::FixBadPixelsConstant::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::FixBadPixelsConstant::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:204,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:205,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:206,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:207,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:212,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:215,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:217,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:217,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:218,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:218,1
    - Dst: setTopLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:221,1
    - Dst: setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:222,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:223,1
    - Dst: isThisInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts:
    - condition: (roi.isThisInside(subImage))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: rawspeed::DngOpcodes::ROIOpcode::ROIOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - isThisInside
    - setTopLeft
    - iRectangle2D::getTopLeft
    - iRectangle2D::isPointInsideInclusive
    - ThrowRDE
    - assert
    - setBottomRightAbsolute
    - getU32
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: void
    signature: "void ROIOpcode(const RawImage& ri, ByteStream& bs,\n                     const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: rawspeed::DngOpcodes::ROIOpcode::getRoi
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getRoi() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: DngOpcodes::ROIOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::ROIOpcode::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: rawspeed::DngOpcodes::DummyROIOpcode::DummyROIOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: "void DummyROIOpcode(const RawImage& ri, ByteStream& bs,\n                          const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:251,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts:
    - condition: (false && "You should not be calling this.")
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: rawspeed::DngOpcodes::DummyROIOpcode::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - assert
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: DngOpcodes::DummyROIOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DummyROIOpcode::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:275,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:277,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:278,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:279,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:282,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:283,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:284,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:285,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:288,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:288,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:290,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:291,1
    - Dst: iRectangle2D::isPointInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:293,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:294,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:296,1
    - Dst: DummyROIOpcode::getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:304,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:305,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:305,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:307,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:307,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:308,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:308,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:309,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:310,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:311,1
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:311,1
    - Dst: iRectangle2D::getLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts:
    - condition: (badRect.isThisInside(fullImage))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 316
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 316
    functionName: rawspeed::DngOpcodes::FixBadPixelsList::FixBadPixelsList
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - DummyROIOpcode::getRoi
    - iRectangle2D::getTop
    - iRectangle2D::getLeft
    - setPosition
    - reserve
    - size
    - emplace_back
    - skipBytes
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - getUncroppedDim
    - ThrowRDE
    - iRectangle2D::getWidth
    - assert
    - iRectangle2D::isPointInside
    - getPosition
    - getU32
    linkageType: ''
    returnType: void
    signature: "void FixBadPixelsList(const RawImage& ri, ByteStream& bs,\n                            const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:320,1
    - Dst: mBadPixelPositions::begin
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:320,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:321,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: rawspeed::DngOpcodes::FixBadPixelsList::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - mBadPixelPositions::insert
    - begin
    - end
    - mBadPixelPositions::begin
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: DngOpcodes::FixBadPixelsList::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::FixBadPixelsList::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:339,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: rawspeed::DngOpcodes::TrimBounds::TrimBounds
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getRoi
    linkageType: ''
    returnType: void
    signature: "void TrimBounds(const RawImage& ri, ByteStream& bs,\n                      iRectangle2D&
      integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:343,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: rawspeed::DngOpcodes::TrimBounds::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - subFrame
    - getRoi
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: DngOpcodes::TrimBounds::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::TrimBounds::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:364,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:365,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:367,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:367,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:368,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:369,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:370,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:373,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:374,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:376,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:378,1
    - Dst: getHeight
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:378,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:379,1
    - Dst: getWidth
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:379,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: rawspeed::DngOpcodes::PixelOpcode::PixelOpcode
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getRoi
    - getHeight
    - getCpp
    - getWidth
    - getU32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void PixelOpcode(const RawImage& ri, ByteStream& bs,\n                       const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: rawspeed::DngOpcodes::PixelOpcode::getPitch
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void getPitch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getDataAsCroppedArray2DRef<T>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:392,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:393,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:394,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:396,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:397,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:402,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:402,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:403,1
    - Dst: op
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' ri'
    - op
    argTypes:
    - RawImage
    - OP
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 408
    functionName: rawspeed::DngOpcodes::PixelOpcode::applyOP
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - img
    - implicit_cast<int>
    - op
    - getRoi
    - getLeft
    - roundUpDivisionSafe
    - getCpp
    - getTop
    - getDataAsCroppedArray2DRef<T>
    linkageType: ''
    returnType: void
    signature: void applyOP(const RawImage& ri, OP op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: DngOpcodes::PixelOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::PixelOpcode::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:427,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:429,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: rawspeed::DngOpcodes::LookupOpcode::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: rawspeed::DngOpcodes::LookupOpcode::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - applyOP<uint16_t>
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: DngOpcodes::LookupOpcode::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::LookupOpcode::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:454,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:457,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:460,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:462,1
    - Dst: fill_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:463,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 464
    functionName: rawspeed::DngOpcodes::TableMap::TableMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - getU16
    - size
    - ThrowRDE
    - fill_n
    - getU32
    linkageType: ''
    returnType: void
    signature: "void TableMap(const RawImage& ri, ByteStream& bs,\n                    const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: DngOpcodes::TableMap::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::TableMap::anchor() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:483,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:484,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:484,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:486,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:488,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:489,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:489,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:490,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:493,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:494,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:496,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:497,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:497,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:498,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:499,1
    - Dst: std::clamp<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:499,1
    - Dst: std::numeric_limits<uint16_t>::min
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:500,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: rawspeed::DngOpcodes::PolynomialMap::PolynomialMap
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<uint16_t>::min
    - vector::reserve
    - pow
    - std::generate_n
    - size
    - vector::size
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    - ThrowRDE
    - check
    - std::back_inserter
    - get
    - std::clamp<double>
    - resize
    - implicit_cast<Buffer::size_type>
    - getU32
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PolynomialMap(const RawImage& ri, ByteStream& bs,\n                         const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: DngOpcodes::PolynomialMap::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::PolynomialMap::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::select
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t select(uint32_t x, uint32_t /*y*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 522
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::select
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t select(uint32_t /*x*/, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: rawspeed::DngOpcodes::DeltaRowOrColBase::DeltaRowOrColBase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeltaRowOrColBase(const RawImage& ri, ByteStream& bs,\n                    const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: DngOpcodes::DeltaRowOrColBase::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DeltaRowOrColBase::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:540,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:543,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:546,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:546,1
    - Dst: valueIsOk
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:548,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:549,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:550,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:551,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: rawspeed::DngOpcodes::DeltaRowOrCol::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - valueIsOk
    - reserve
    - size
    - emplace_back
    - implicit_cast<double>
    - ThrowRDE
    - getDataType
    - rawspeed::DngOpcodes::DngOpcode::setup
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void setup(const RawImage& ri) final
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:566,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:567,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:572,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: getRoi
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:573,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: getPitch
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: getPitch
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:574,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:576,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:580,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:581,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:581,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:582,1
    - Dst: std::fpclassify
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:583,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:589,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    - f2iScale_
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 592
    functionName: rawspeed::DngOpcodes::DeltaRowOrCol::DeltaRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - std::generate_n
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - implicit_cast<double>
    - getPitch
    - ThrowRDE
    - getRoi
    - check
    - roundUpDivisionSafe
    - std::back_inserter
    - get
    - std::fpclassify
    - getU32
    linkageType: ''
    returnType: void
    signature: "void DeltaRowOrCol(const RawImage& ri, ByteStream& bs,\n                const
      iRectangle2D& integrated_subimg_, float f2iScale_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:606,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::valueIsOk
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - implicit_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool valueIsOk(float value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:613,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::OffsetPerRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    linkageType: ''
    returnType: void
    signature: "void OffsetPerRowOrCol(const RawImage& ri, ByteStream& bs,\n                             const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:617,1
    - Dst: rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:618,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:620,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:620,1
    - Dst: rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:623,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: rawspeed::DngOpcodes::OffsetPerRowOrCol::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<float>
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - getDataType
    - rawspeed::DngOpcodes::OffsetPerRowOrCol::template applyOP<uint16_t>
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 645
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::valueIsOk
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool valueIsOk(float value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:651,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:652,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg_'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::ScalePerRowOrCol
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    linkageType: ''
    returnType: void
    signature: "void ScalePerRowOrCol(const RawImage& ri, ByteStream& bs,\n                            const
      iRectangle2D& integrated_subimg_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:656,1
    - Dst: rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:657,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:659,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:659,1
    - Dst: rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<float>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:662,1
    - Dst: rawspeed::DngOpcodes::DeltaRowOrColBase::select
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: rawspeed::DngOpcodes::ScalePerRowOrCol::apply
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<float>
    - clampBits
    - rawspeed::DngOpcodes::ScalePerRowOrCol::template applyOP<uint16_t>
    - rawspeed::DngOpcodes::DeltaRowOrColBase::select
    - getDataType
    linkageType: ''
    returnType: void
    signature: void apply(const RawImage& ri) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:674,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:676,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:677,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:681,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:682,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:683,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:684,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:685,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:688,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:691,1
    - Dst: getImageCropAsRectangle
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:693,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:696,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:697,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:699,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:701,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:703,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:704,1
    - Dst: rawspeed::DngOpcodes::Map
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:708,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:709,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:711,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:714,1
    - Dst: opConstructor
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:714,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:720,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:723,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:724,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:728,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - ' ri'
    - bs
    argTypes:
    - RawImage
    - ByteStream
    assertStmts:
    - condition: (opcodes.size() == opcode_count)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 730
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 730
    functionName: rawspeed::DngOpcodes::DngOpcodes
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::Map
    - ByteStream::getU32
    - reserve
    - ByteStream::getStream
    - ByteStream::getPosition
    - ByteStream::setPosition
    - emplace_back
    - size
    - opConstructor
    - ByteStream::skipBytes
    - ThrowRDE
    - getImageCropAsRectangle
    - ByteStream::getRemainSize
    - std::tie
    - assert
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::DngOpcodes(const RawImage& ri, ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 734
    functionName: DngOpcodes::~DngOpcodes()
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::~DngOpcodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:738,1
    - Dst: apply
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ri'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: rawspeed::DngOpcodes::applyOpCodes
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - setup
    - apply
    linkageType: ''
    returnType: void
    signature: void DngOpcodes::applyOpCodes(const RawImage& ri) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Opcode>
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ri'
    - ' bs'
    - ' integrated_subimg'
    argTypes:
    - RawImage
    - ByteStream
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: rawspeed::DngOpcodes::constructor
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Opcode>
    linkageType: ''
    returnType: std::unique_ptr<DngOpcodes::DngOpcode>
    signature: "std::unique_ptr<DngOpcodes::DngOpcode> DngOpcodes::constructor(const
      RawImage& ri, ByteStream& bs,\n                        iRectangle2D& integrated_subimg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:756,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:758,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:760,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:762,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:766,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:769,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:772,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:775,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:778,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:780,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:785,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:790,1
    - Dst: make_pair
      Src: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 802
    functionName: rawspeed::DngOpcodes::Map
    functionSourceFile: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    functionUses: 2
    functionsReached:
    - make_pair
    linkageType: ''
    returnType: Optional<std::pair<const char*, DngOpcodes::constructor_t>>
    signature: Optional<std::pair<const char*, DngOpcodes::constructor_t>> DngOpcodes::Map(uint32_t
      code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:45,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _ntables
    - _dither
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: rawspeed::TableLookUp::TableLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - resize
    linkageType: ''
    returnType: void
    signature: void TableLookUp::TableLookUp(int _ntables, bool _dither)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:51,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:51,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:53,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:58,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:61,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:61,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:64,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:73,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:76,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:77,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:77,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:78,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:78,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:82,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ntable
    - ' table'
    argTypes:
    - int
    - std::vector<uint16_t>
    assertStmts:
    - condition: (!table.empty())
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: rawspeed::TableLookUp::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - t
    - empty
    - clampBits
    - data
    - size
    - implicit_cast<int>
    - Array2DRef
    - ThrowRDE
    - std::max
    - assert
    - invariant
    - std::min
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void TableLookUp::setTable(int ntable, const std::vector<uint16_t>&
      table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:89,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:91,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: rawspeed::TableLookUp::getTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - Array2DRef
    - data
    linkageType: ''
    returnType: Array1DRef<uint16_t>
    signature: Array1DRef<uint16_t> TableLookUp::getTable(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:45,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _ntables
    - _dither
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: rawspeed::TableLookUp::TableLookUp
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - resize
    linkageType: ''
    returnType: void
    signature: void TableLookUp::TableLookUp(int _ntables, bool _dither)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:51,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:51,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:53,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:58,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:61,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:61,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:64,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:73,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:76,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:77,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:77,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:78,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:78,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:82,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ntable
    - ' table'
    argTypes:
    - int
    - std::vector<uint16_t>
    assertStmts:
    - condition: (!table.empty())
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: rawspeed::TableLookUp::setTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - t
    - empty
    - clampBits
    - data
    - size
    - implicit_cast<int>
    - Array2DRef
    - ThrowRDE
    - std::max
    - assert
    - invariant
    - std::min
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void TableLookUp::setTable(int ntable, const std::vector<uint16_t>&
      table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:89,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:91,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: rawspeed::TableLookUp::getTable
    functionSourceFile: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - Array2DRef
    - data
    linkageType: ''
    returnType: Array1DRef<uint16_t>
    signature: Array1DRef<uint16_t> TableLookUp::getTable(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:38,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - XTransPhase
    - XTransPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: rawspeed::getTranslationalOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 0
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTranslationalOffset(XTransPhase src, XTransPhase tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:46,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:47,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:47,1
    - Dst: std::array<T, 6 * 6>::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:48,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:51,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:52,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:53,1
    - Dst: tgt
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:54,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 6 * 6>
    - XTransPhase
    - XTransPhase
    assertStmts:
    - condition: (coordOffset >= iPoint2D(0, 0) && "Offset is non-negative.")
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: rawspeed::applyPhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 4
    functionsReached:
    - Array2DRef::height
    - rawspeed::getTranslationalOffset
    - std::array<T, 6 * 6>::data
    - std::array::data
    - tgt
    - assert
    - iPoint2D
    - Array2DRef::width
    - src
    linkageType: ''
    returnType: std::array<T, 6 * 6>
    signature: "std::array<T, 6 * 6> applyPhaseShift(std::array<T, 6 * 6> srcData,\n
      \                                           XTransPhase srcPhase,\n                                            XTransPhase
      tgtPhase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - XTransPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: rawspeed::getAsCFAColors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 4
    functionsReached:
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: std::array<CFAColor, 6 * 6>
    signature: std::array<CFAColor, 6 * 6> getAsCFAColors(XTransPhase p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:74,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:78,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:79,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:80,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:81,1
    - Dst: getColorAt
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:81,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:86,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:87,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' CFA'
    argTypes:
    - ColorFilterArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: rawspeed::getAsXTransPhase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - pat
    - rawspeed::getAsCFAColors
    - getSize
    - std::array::data
    - getColorAt
    - iPoint2D
    - Array2DRef::width
    linkageType: ''
    returnType: Optional<XTransPhase>
    signature: Optional<XTransPhase> getAsXTransPhase(const ColorFilterArray& CFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:38,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - XTransPhase
    - XTransPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: rawspeed::getTranslationalOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 1
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTranslationalOffset(XTransPhase src, XTransPhase tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:46,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:47,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:47,1
    - Dst: std::array<T, 6 * 6>::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:48,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:51,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:52,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:53,1
    - Dst: tgt
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:54,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 6 * 6>
    - XTransPhase
    - XTransPhase
    assertStmts:
    - condition: (coordOffset >= iPoint2D(0, 0) && "Offset is non-negative.")
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: rawspeed::applyPhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 5
    functionsReached:
    - Array2DRef::height
    - rawspeed::getTranslationalOffset
    - std::array<T, 6 * 6>::data
    - std::array::data
    - tgt
    - assert
    - iPoint2D
    - Array2DRef::width
    - src
    linkageType: ''
    returnType: std::array<T, 6 * 6>
    signature: "std::array<T, 6 * 6> applyPhaseShift(std::array<T, 6 * 6> srcData,\n
      \                                           XTransPhase srcPhase,\n                                            XTransPhase
      tgtPhase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - XTransPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: rawspeed::getAsCFAColors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 5
    functionsReached:
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: std::array<CFAColor, 6 * 6>
    signature: std::array<CFAColor, 6 * 6> getAsCFAColors(XTransPhase p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:74,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:78,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:79,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:80,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:81,1
    - Dst: getColorAt
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:81,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:86,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:87,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/XTransPhase.h:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' CFA'
    argTypes:
    - ColorFilterArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: rawspeed::getAsXTransPhase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/XTransPhase.h
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - pat
    - rawspeed::getAsCFAColors
    - getSize
    - std::array::data
    - getColorAt
    - iPoint2D
    - Array2DRef::width
    linkageType: ''
    returnType: Optional<XTransPhase>
    signature: Optional<XTransPhase> getAsXTransPhase(const ColorFilterArray& CFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::RawImageDataU16::RawImageDataU16
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::RawImageDataU16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _dim'
    - _cpp
    argTypes:
    - iPoint2D
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: rawspeed::RawImageDataU16::RawImageDataU16
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::RawImageDataU16(const iPoint2D& _dim, uint32_t
      _cpp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:61,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:64,1
    - Dst: auto::height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:66,1
    - Dst: auto::width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:67,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:81,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:83,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:88,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:89,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:97,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:99,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:104,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:105,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:112,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:112,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:113,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:128,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:132,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:134,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 146
    functionName: rawspeed::RawImageDataU16::calculateBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - auto::width
    - img
    - auto::height
    - data
    - localhist
    - Array2DRef
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - getAsArray1DRef
    - static_cast<int>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::calculateBlackAreas()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: rawspeed::histogram
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void histogram(row, col)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:151,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:155,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:158,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:159,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:159,1
    - Dst: max
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:160,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:160,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:167,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:173,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:175,1
    - Dst: rawspeed::RawImageDataU16::calculateBlackAreas
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:180,1
    - Dst: startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:182,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: rawspeed::RawImageDataU16::scaleBlackWhite
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - min
    - img
    - empty
    - area
    - getU16DataAsCroppedArray2DRef
    - writeLog
    - startWorker
    - static_cast<int>
    - max
    - rawspeed::RawImageDataU16::calculateBlackAreas
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleBlackWhite()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageDataU16::scaleValues_plain
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:188,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:193,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:196,1
    - Dst: rawspeed::RawImageDataU16::scaleValues_SSE2
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:197,1
    - Dst: rawspeed::RawImageDataU16::scaleValues_plain
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: rawspeed::RawImageDataU16::scaleValues
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<float>
    - rawspeed::RawImageDataU16::scaleValues_plain
    - rawspeed::RawImageDataU16::scaleValues_SSE2
    - rawspeed::Cpuid::SSE2
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues(int start_y, int end_y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:208,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:210,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:211,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:216,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:229,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:231,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:231,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:232,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:234,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:235,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:237,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:238,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:245,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:247,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:248,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:249,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:251,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:251,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:254,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:255,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:262,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:263,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:264,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:265,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:266,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:269,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:271,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:273,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:280,1
    - Dst: _mm_setzero_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:284,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:289,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:289,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:290,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:290,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:292,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:292,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:293,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:293,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:296,1
    - Dst: roundDown
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:296,1
    - Dst: _mm_load_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: _mm_subs_epu16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:303,1
    - Dst: _mm_mulhi_epu16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:305,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:306,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:307,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:308,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:310,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:311,1
    - Dst: _mm_xor_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:313,1
    - Dst: _mm_mulhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:313,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:314,1
    - Dst: _mm_and_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:316,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:317,1
    - Dst: _mm_setzero_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:319,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:320,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:321,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:322,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:323,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:325,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:326,1
    - Dst: _mm_srai_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:329,1
    - Dst: _mm_srai_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:330,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:332,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:333,1
    - Dst: _mm_packs_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:335,1
    - Dst: _mm_xor_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:337,1
    - Dst: _mm_store_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    constantsTouched: []
    func_position:
      end: 342
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 342
    functionName: rawspeed::RawImageDataU16::scaleValues_SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 1
    functionsReached:
    - _mm_add_epi32
    - _mm_mulhi_epi16
    - _mm_srai_epi32
    - _mm_unpackhi_epi16
    - reinterpret_cast<__m128i*>
    - static_cast<float>
    - _mm_mulhi_epu16
    - _mm_store_si128
    - _mm_load_si128
    - getAsArray1DRef
    - out
    - static_cast<int>
    - implicit_cast<float>
    - _mm_setzero_si128
    - _mm_set1_epi32
    - height
    - _mm_set_epi32
    - _mm_and_si128
    - width
    - assert
    - _mm_xor_si128
    - _mm_loadu_si128
    - blackLevelSeparate1D
    - roundDown
    - _mm_mullo_epi16
    - _mm_packs_epi32
    - _mm_subs_epu16
    - _mm_sub_epi32
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues_SSE2(int start_y, int end_y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:349,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:351,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:352,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:357,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:369,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:371,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:371,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:372,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:384,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    constantsTouched: []
    func_position:
      end: 392
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 392
    functionName: rawspeed::RawImageDataU16::scaleValues_plain
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 1
    functionsReached:
    - img
    - clampBits
    - height
    - width
    - assert
    - getAsArray1DRef
    - static_cast<int>
    - implicit_cast<float>
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues_plain(int start_y, int end_y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:400,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:406,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:407,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:408,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:411,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:411,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:415,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:418,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:419,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:420,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:425,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:428,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:429,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:430,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:436,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:439,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:440,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:441,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:446,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:449,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:450,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:451,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:479,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:479,1
    - Dst: rawspeed::RawImageDataU16::fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:484,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - x
    - y
    - component
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 485
    functionName: rawspeed::RawImageDataU16::fixBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 1
    functionsReached:
    - img
    - clampBits
    - data
    - bad
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - array::fill
    - rawspeed::RawImageDataU16::fixBadPixel
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::fixBadPixel(uint32_t x, uint32_t y, int component)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:489,1
    - Dst: getTable
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:494,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:498,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:499,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:500,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:503,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:503,1
    - Dst: getTable
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:510,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 519
    functionName: rawspeed::RawImageDataU16::doLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - getTable
    - img
    - clampBits
    - t
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::doLookup(int start_y, int end_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::RawImageDataU16::RawImageDataU16
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::RawImageDataU16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _dim'
    - _cpp
    argTypes:
    - iPoint2D
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: rawspeed::RawImageDataU16::RawImageDataU16
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::RawImageDataU16(const iPoint2D& _dim, uint32_t
      _cpp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:61,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:64,1
    - Dst: auto::height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:66,1
    - Dst: auto::width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:67,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:81,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:83,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:88,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:89,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:97,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:99,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:104,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:105,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:112,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:112,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:113,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:128,1
    - Dst: localhist
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:132,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:134,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 146
    functionName: rawspeed::RawImageDataU16::calculateBlackAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::RawImage::create
    - auto::width
    - img
    - auto::height
    - data
    - localhist
    - Array2DRef
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - getAsArray1DRef
    - static_cast<int>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::calculateBlackAreas()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: rawspeed::histogram
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void histogram(row, col)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:151,1
    - Dst: getU16DataAsCroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:155,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:158,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:159,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:159,1
    - Dst: max
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:160,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:160,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:167,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:173,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:175,1
    - Dst: rawspeed::RawImageDataU16::calculateBlackAreas
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:180,1
    - Dst: startWorker
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:182,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: rawspeed::RawImageDataU16::scaleBlackWhite
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - min
    - img
    - empty
    - area
    - getU16DataAsCroppedArray2DRef
    - writeLog
    - startWorker
    - static_cast<int>
    - max
    - rawspeed::RawImageDataU16::calculateBlackAreas
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleBlackWhite()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImageDataU16::scaleValues_plain
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:188,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:193,1
    - Dst: rawspeed::Cpuid::SSE2
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:196,1
    - Dst: rawspeed::RawImageDataU16::scaleValues_SSE2
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:197,1
    - Dst: rawspeed::RawImageDataU16::scaleValues_plain
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: rawspeed::RawImageDataU16::scaleValues
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<float>
    - rawspeed::RawImageDataU16::scaleValues_plain
    - rawspeed::RawImageDataU16::scaleValues_SSE2
    - rawspeed::Cpuid::SSE2
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues(int start_y, int end_y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:207,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:208,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:210,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:211,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:216,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:229,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:231,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:231,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:232,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:234,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:235,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:237,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:238,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:245,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:247,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:248,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:249,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:251,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:251,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:254,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:255,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:262,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:263,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:264,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:265,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:266,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:269,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:271,1
    - Dst: _mm_set1_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:273,1
    - Dst: _mm_set_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:280,1
    - Dst: _mm_setzero_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:284,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:289,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:289,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:290,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:290,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:292,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:292,1
    - Dst: _mm_loadu_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:293,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:293,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:296,1
    - Dst: roundDown
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:296,1
    - Dst: _mm_load_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:301,1
    - Dst: _mm_subs_epu16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:303,1
    - Dst: _mm_mulhi_epu16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:305,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:306,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:307,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:308,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:310,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:311,1
    - Dst: _mm_xor_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:313,1
    - Dst: _mm_mulhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:313,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:314,1
    - Dst: _mm_and_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:316,1
    - Dst: _mm_mullo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:317,1
    - Dst: _mm_setzero_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:319,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:320,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:321,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:322,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:323,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:325,1
    - Dst: _mm_add_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:326,1
    - Dst: _mm_srai_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:329,1
    - Dst: _mm_srai_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:330,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:332,1
    - Dst: _mm_sub_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:333,1
    - Dst: _mm_packs_epi32
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:335,1
    - Dst: _mm_xor_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:337,1
    - Dst: _mm_store_si128
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    - Dst: reinterpret_cast<__m128i*>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    constantsTouched: []
    func_position:
      end: 342
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 342
    functionName: rawspeed::RawImageDataU16::scaleValues_SSE2
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 2
    functionsReached:
    - _mm_add_epi32
    - _mm_mulhi_epi16
    - _mm_srai_epi32
    - _mm_unpackhi_epi16
    - reinterpret_cast<__m128i*>
    - static_cast<float>
    - _mm_mulhi_epu16
    - _mm_store_si128
    - _mm_load_si128
    - getAsArray1DRef
    - out
    - static_cast<int>
    - implicit_cast<float>
    - _mm_setzero_si128
    - _mm_set1_epi32
    - height
    - _mm_set_epi32
    - _mm_and_si128
    - width
    - assert
    - _mm_xor_si128
    - _mm_loadu_si128
    - blackLevelSeparate1D
    - roundDown
    - _mm_mullo_epi16
    - _mm_packs_epi32
    - _mm_subs_epu16
    - _mm_sub_epi32
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues_SSE2(int start_y, int end_y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:348,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:349,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:351,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:352,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:357,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:369,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:371,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:371,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:372,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:384,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (blackLevelSeparate->width() == 2 && blackLevelSeparate->height()
        == 2)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    constantsTouched: []
    func_position:
      end: 392
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 392
    functionName: rawspeed::RawImageDataU16::scaleValues_plain
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 2
    functionsReached:
    - img
    - clampBits
    - height
    - width
    - assert
    - getAsArray1DRef
    - static_cast<int>
    - implicit_cast<float>
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::scaleValues_plain(int start_y, int end_y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:400,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:406,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:407,1
    - Dst: array::fill
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:408,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:411,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:411,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:415,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:418,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:419,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:420,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:425,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:428,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:429,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:430,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:436,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:439,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:440,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:441,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:446,1
    - Dst: bad
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:449,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:450,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:451,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:479,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:479,1
    - Dst: rawspeed::RawImageDataU16::fixBadPixel
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:484,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - x
    - y
    - component
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 485
    functionName: rawspeed::RawImageDataU16::fixBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 2
    functionsReached:
    - img
    - clampBits
    - data
    - bad
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - array::fill
    - rawspeed::RawImageDataU16::fixBadPixel
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::fixBadPixel(uint32_t x, uint32_t y, int component)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:489,1
    - Dst: getTable
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:494,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:498,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:499,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:500,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:503,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:503,1
    - Dst: getTable
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:510,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: t
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:513,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - start_y
    - end_y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 519
    functionName: rawspeed::RawImageDataU16::doLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
    functionUses: 0
    functionsReached:
    - getTable
    - img
    - clampBits
    - t
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: void
    signature: void RawImageDataU16::doLookup(int start_y, int end_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:93,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:93,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:106,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:108,1
    - Dst: static_cast<typename decltype(segments)::size_type>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(static_cast<typename decltype(segments)::size_type>(num_segments)
        ==\n           segments.size())"
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    constantsTouched: []
    func_position:
      end: 110
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 110
    functionName: rawspeed::Spline::prepare
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached:
    - static_cast<typename decltype(segments)::size_type>
    - pop_back
    - size
    - back
    - assert
    - std::vector::back
    linkageType: ''
    returnType: void
    signature: void prepare()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:114,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:114,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:118,1
    - Dst: front
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:119,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:119,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:121,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:121,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:122,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:122,1
    - Dst: std::greater_equal<>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:124,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:125,1
    - Dst: std::for_each
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:133,1
    - Dst: std::numeric_limits<value_type>::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:133,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:134,1
    - Dst: std::numeric_limits<value_type>::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:134,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:139,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:139,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:142,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:143,1
    - Dst: rawspeed::Spline::prepare
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' control_points'
    argTypes:
    - std::vector<iPoint2D>
    assertStmts:
    - condition: (control_points.front().x == 0)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: "(std::adjacent_find(\n               control_points.cbegin(), control_points.cend(),\n
        \              [](const iPoint2D& lhs, const iPoint2D& rhs) -> bool {\n                 return
        std::greater_equal<>()(lhs.x, rhs.x);\n               }) == control_points.cend()
        &&\n           \"The X coordinates must all be strictly increasing\")"
      pos:
        line_end: 125
        line_start: 120
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (control_points.back().x == 65535)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (p.y >= std::numeric_limits<value_type>::min())
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (p.y <= std::numeric_limits<value_type>::max())
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: "(control_points.size() >= 2 &&\n           \"Need at least two points
        to interpolate between\")"
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: rawspeed::Spline::Spline
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<value_type>::min
    - resize
    - std::greater_equal<>
    - size
    - implicit_cast<int>
    - cbegin
    - rawspeed::Spline::prepare
    - back
    - assert
    - std::for_each
    - cend
    - std::numeric_limits<value_type>::max
    - std::adjacent_find
    - front
    linkageType: ''
    returnType: void
    signature: void Spline(const std::vector<iPoint2D>& control_points)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: rawspeed::Spline::getSegments
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Segment>
    signature: std::vector<Segment> getSegments() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:169,1
    - Dst: std::numeric_limits<value_type>::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:170,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:171,1
    - Dst: std::numeric_limits<value_type>::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:172,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 180
    functionName: rawspeed::Spline::calculateCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<value_type>::min
    - implicit_cast<T>
    - std::max
    - std::numeric_limits<value_type>::max
    - std::min
    linkageType: ''
    returnType: std::vector<value_type>
    signature: std::vector<value_type> calculateCurve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:93,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:93,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:106,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:108,1
    - Dst: static_cast<typename decltype(segments)::size_type>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(static_cast<typename decltype(segments)::size_type>(num_segments)
        ==\n           segments.size())"
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    constantsTouched: []
    func_position:
      end: 110
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 110
    functionName: rawspeed::Spline::prepare
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 1
    functionsReached:
    - static_cast<typename decltype(segments)::size_type>
    - pop_back
    - size
    - back
    - assert
    - std::vector::back
    linkageType: ''
    returnType: void
    signature: void prepare()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:114,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:114,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:118,1
    - Dst: front
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:119,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:119,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:121,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:121,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:122,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:122,1
    - Dst: std::greater_equal<>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:124,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:125,1
    - Dst: std::for_each
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:131,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:133,1
    - Dst: std::numeric_limits<value_type>::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:133,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:134,1
    - Dst: std::numeric_limits<value_type>::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:134,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:139,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:139,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:142,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:143,1
    - Dst: rawspeed::Spline::prepare
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' control_points'
    argTypes:
    - std::vector<iPoint2D>
    assertStmts:
    - condition: (control_points.front().x == 0)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: "(std::adjacent_find(\n               control_points.cbegin(), control_points.cend(),\n
        \              [](const iPoint2D& lhs, const iPoint2D& rhs) -> bool {\n                 return
        std::greater_equal<>()(lhs.x, rhs.x);\n               }) == control_points.cend()
        &&\n           \"The X coordinates must all be strictly increasing\")"
      pos:
        line_end: 125
        line_start: 120
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (control_points.back().x == 65535)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (p.y >= std::numeric_limits<value_type>::min())
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: (p.y <= std::numeric_limits<value_type>::max())
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - condition: "(control_points.size() >= 2 &&\n           \"Need at least two points
        to interpolate between\")"
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: rawspeed::Spline::Spline
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<value_type>::min
    - resize
    - std::greater_equal<>
    - size
    - implicit_cast<int>
    - cbegin
    - rawspeed::Spline::prepare
    - back
    - assert
    - std::for_each
    - cend
    - std::numeric_limits<value_type>::max
    - std::adjacent_find
    - front
    linkageType: ''
    returnType: void
    signature: void Spline(const std::vector<iPoint2D>& control_points)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: rawspeed::Spline::getSegments
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Segment>
    signature: std::vector<Segment> getSegments() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:169,1
    - Dst: std::numeric_limits<value_type>::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:170,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:171,1
    - Dst: std::numeric_limits<value_type>::max
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:172,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/common/Spline.h:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 180
    functionName: rawspeed::Spline::calculateCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/common/Spline.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<value_type>::min
    - implicit_cast<T>
    - std::max
    - std::numeric_limits<value_type>::max
    - std::min
    linkageType: ''
    returnType: std::vector<value_type>
    signature: std::vector<value_type> calculateCurve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:69,1
    - Dst: getCanonicalPosition
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:73,1
    - Dst: getCanonicalPosition
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:73,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:74,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - BayerPhase
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: rawspeed::getTranslationalOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 2
    functionsReached:
    - std::abs
    - static_cast<unsigned>
    - getCanonicalPosition
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTranslationalOffset(BayerPhase src, BayerPhase tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:83,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:83,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:84,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:87,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:88,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:89,1
    - Dst: tgt
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:90,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 4>
    - BayerPhase
    - BayerPhase
    assertStmts:
    - condition: (coordOffset >= iPoint2D(0, 0) && "Offset is non-negative.")
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: rawspeed::applyPhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 6
    functionsReached:
    - Array2DRef::height
    - rawspeed::getTranslationalOffset
    - std::array<T, 4>::data
    - std::array::data
    - assert
    - tgt
    - iPoint2D
    - Array2DRef::width
    - src
    linkageType: ''
    returnType: std::array<T, 4>
    signature: "std::array<T, 4> applyPhaseShift(std::array<T, 4> srcData,\n                                        BayerPhase
      srcPhase,\n                                        BayerPhase tgtPhase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: rawspeed::getAsCFAColors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 6
    functionsReached:
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: std::array<CFAColor, 4>
    signature: std::array<CFAColor, 4> getAsCFAColors(BayerPhase p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:110,1
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:112,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:117,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:119,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:119,1
    - Dst: std::find_if
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::find_if
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::array::rbegin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::array::rend
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:122,1
    - Dst: std::array::rend
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:123,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 4>
    - BayerPhase
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: rawspeed::applyStablePhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 4
    functionsReached:
    - std::distance
    - std::array::rend
    - std::find_if
    - rawspeed::getAsCFAColors
    - rawspeed::getTranslationalOffset
    - std::array::begin
    - std::array::end
    - rawspeed::applyPhaseShift
    - std::swap
    - std::array::rbegin
    linkageType: ''
    returnType: std::array<T, 4>
    signature: "std::array<T, 4> applyStablePhaseShift(std::array<T, 4> srcData,\n
      \                                             BayerPhase srcPhase,\n                                              BayerPhase
      tgtPhase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:132,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:132,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:136,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:137,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:138,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:139,1
    - Dst: getColorAt
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:139,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:143,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:144,1
    - Dst: static_cast<BayerPhase>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:145,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' CFA'
    argTypes:
    - ColorFilterArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: rawspeed::getAsBayerPhase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 4
    functionsReached:
    - Array2DRef::height
    - pat
    - static_cast<BayerPhase>
    - rawspeed::getAsCFAColors
    - getSize
    - std::array::data
    - getColorAt
    - static_cast<int>
    - iPoint2D
    - Array2DRef::width
    linkageType: ''
    returnType: Optional<BayerPhase>
    signature: Optional<BayerPhase> getAsBayerPhase(const ColorFilterArray& CFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:69,1
    - Dst: getCanonicalPosition
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:73,1
    - Dst: getCanonicalPosition
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:73,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:74,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - BayerPhase
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: rawspeed::getTranslationalOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 4
    functionsReached:
    - std::abs
    - static_cast<unsigned>
    - getCanonicalPosition
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTranslationalOffset(BayerPhase src, BayerPhase tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:83,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:83,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:84,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:87,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:88,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:89,1
    - Dst: tgt
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:90,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 4>
    - BayerPhase
    - BayerPhase
    assertStmts:
    - condition: (coordOffset >= iPoint2D(0, 0) && "Offset is non-negative.")
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: rawspeed::applyPhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 8
    functionsReached:
    - Array2DRef::height
    - rawspeed::getTranslationalOffset
    - std::array<T, 4>::data
    - std::array::data
    - assert
    - tgt
    - iPoint2D
    - Array2DRef::width
    - src
    linkageType: ''
    returnType: std::array<T, 4>
    signature: "std::array<T, 4> applyPhaseShift(std::array<T, 4> srcData,\n                                        BayerPhase
      srcPhase,\n                                        BayerPhase tgtPhase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: rawspeed::getAsCFAColors
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 8
    functionsReached:
    - rawspeed::applyPhaseShift
    linkageType: ''
    returnType: std::array<CFAColor, 4>
    signature: std::array<CFAColor, 4> getAsCFAColors(BayerPhase p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::applyPhaseShift
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:110,1
    - Dst: rawspeed::getTranslationalOffset
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:112,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:117,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:119,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:119,1
    - Dst: std::find_if
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:120,1
    - Dst: std::distance
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::find_if
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::array::rbegin
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:121,1
    - Dst: std::array::rend
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:122,1
    - Dst: std::array::rend
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:123,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - srcData
    - srcPhase
    - tgtPhase
    argTypes:
    - std::array<T, 4>
    - BayerPhase
    - BayerPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: rawspeed::applyStablePhaseShift
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 4
    functionsReached:
    - std::distance
    - std::array::rend
    - std::find_if
    - rawspeed::getAsCFAColors
    - rawspeed::getTranslationalOffset
    - std::array::begin
    - std::array::end
    - rawspeed::applyPhaseShift
    - std::swap
    - std::array::rbegin
    linkageType: ''
    returnType: std::array<T, 4>
    signature: "std::array<T, 4> applyStablePhaseShift(std::array<T, 4> srcData,\n
      \                                             BayerPhase srcPhase,\n                                              BayerPhase
      tgtPhase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:132,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:132,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:136,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:137,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:138,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:139,1
    - Dst: getColorAt
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:139,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:143,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:144,1
    - Dst: static_cast<BayerPhase>
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:145,1
    - Dst: rawspeed::getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/common/BayerPhase.h:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' CFA'
    argTypes:
    - ColorFilterArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: rawspeed::getAsBayerPhase
    functionSourceFile: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    functionUses: 4
    functionsReached:
    - Array2DRef::height
    - pat
    - static_cast<BayerPhase>
    - rawspeed::getAsCFAColors
    - getSize
    - std::array::data
    - getColorAt
    - static_cast<int>
    - iPoint2D
    - Array2DRef::width
    linkageType: ''
    returnType: Optional<BayerPhase>
    signature: Optional<BayerPhase> getAsBayerPhase(const ColorFilterArray& CFA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::SimpleLUT::SimpleLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleLUT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:53,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:54,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:54,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:57,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:58,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:60,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts:
    - condition: (table.size() == fullTableSize)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::SimpleLUT::SimpleLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached:
    - reserve
    - size
    - f
    - assert
    - std::back_inserter
    - std::generate_n
    linkageType: ''
    returnType: void
    signature: void SimpleLUT(F f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: operator[](int x) const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached:
    - clampBits
    linkageType: ''
    returnType: value_type
    signature: value_type operator[](int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::SimpleLUT::SimpleLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleLUT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:53,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:54,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:54,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:57,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:58,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:60,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts:
    - condition: (table.size() == fullTableSize)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::SimpleLUT::SimpleLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached:
    - reserve
    - size
    - f
    - assert
    - std::back_inserter
    - std::generate_n
    linkageType: ''
    returnType: void
    signature: void SimpleLUT(F f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/common/SimpleLUT.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: operator[](int x) const
    functionSourceFile: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
    functionUses: 0
    functionsReached:
    - clampBits
    linkageType: ''
    returnType: value_type
    signature: value_type operator[](int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:33,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin_iterator_
    - end_iterator_
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: rawspeed::iterator_range::iterator_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_range(Iter begin_iterator_, Iter end_iterator_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: rawspeed::iterator_range::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::iterator_range::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::iterator_range::empty
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<T>
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: rawspeed::make_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - iterator_range<T>
    - std::move
    linkageType: ''
    returnType: iterator_range<T>
    signature: iterator_range<T> make_range(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<T>
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::pair<T, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: rawspeed::make_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - iterator_range<T>
    - std::move
    linkageType: ''
    returnType: iterator_range<T>
    signature: iterator_range<T> make_range(std::pair<T, T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:33,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin_iterator_
    - end_iterator_
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: rawspeed::iterator_range::iterator_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_range(Iter begin_iterator_, Iter end_iterator_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: rawspeed::iterator_range::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::iterator_range::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::iterator_range::empty
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<T>
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: rawspeed::make_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - iterator_range<T>
    - std::move
    linkageType: ''
    returnType: iterator_range<T>
    signature: iterator_range<T> make_range(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<T>
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/iterator_range.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::pair<T, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: rawspeed::make_range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/iterator_range.h
    functionUses: 0
    functionsReached:
    - iterator_range<T>
    - std::move
    linkageType: ''
    returnType: iterator_range<T>
    signature: iterator_range<T> make_range(std::pair<T, T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bitsPat_
    - bitIdx_
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::BitMSBIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - rawspeed::bitwidth
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BitMSBIterator(T bitsPat_, int bitIdx_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitwidth
    - static_cast<unsigned>
    - rawspeed::invariant
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: BitMSBIterator
    signature: BitMSBIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitMSBIterator
    - BitMSBIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator==(const BitMSBIterator& a, const BitMSBIterator& b)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitMSBIterator& a, const BitMSBIterator& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bitsPat_
    - bitIdx_
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::BitMSBIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - rawspeed::bitwidth
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BitMSBIterator(T bitsPat_, int bitIdx_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - bitwidth<T>
    - static_cast<unsigned>
    - invariant
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: BitMSBIterator
    signature: BitMSBIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/BitIterator.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - BitMSBIterator
    - BitMSBIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator==(const BitMSBIterator& a, const BitMSBIterator& b)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BitMSBIterator& a, const BitMSBIterator& b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:39,1
    - Dst: std::partition_point
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:48,1
    - Dst: RangesOverlap
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:48,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:52,1
    - Dst: std::prev
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:56,1
    - Dst: RangesOverlap
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' newElt'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 58
    functionName: rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 0
    functionsReached:
    - std::prev
    - empty
    - std::partition_point
    - end
    - begin
    - RangesOverlap
    linkageType: ''
    returnType: bool
    signature: bool rangeIsOverlappingExistingElementOfSortedSet(const T& newElt)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:62,1
    - Dst: rawspeed::NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:65,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' newElt'
    argTypes:
    - T
    assertStmts:
    - condition: (i.second && "Did not insert after all?")
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: rawspeed::NORangesSet::insert
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 1
    functionsReached:
    - rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
    - assert
    - rawspeed::NORangesSet::insert
    linkageType: ''
    returnType: bool
    signature: bool insert(const T& newElt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NORangesSet::size
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: rawspeed::NORangesSet::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 1
    functionsReached:
    - rawspeed::NORangesSet::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:39,1
    - Dst: std::partition_point
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:44,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:48,1
    - Dst: RangesOverlap
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:48,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:52,1
    - Dst: std::prev
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:56,1
    - Dst: RangesOverlap
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' newElt'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 58
    functionName: rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 1
    functionsReached:
    - std::prev
    - empty
    - std::partition_point
    - end
    - begin
    - RangesOverlap
    linkageType: ''
    returnType: bool
    signature: bool rangeIsOverlappingExistingElementOfSortedSet(const T& newElt)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:62,1
    - Dst: rawspeed::NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:65,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' newElt'
    argTypes:
    - T
    assertStmts:
    - condition: (i.second && "Did not insert after all?")
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: rawspeed::NORangesSet::insert
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 2
    functionsReached:
    - rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
    - assert
    - rawspeed::NORangesSet::insert
    linkageType: ''
    returnType: bool
    signature: bool insert(const T& newElt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NORangesSet::size
      Src: /src/librawspeed/src/librawspeed/adt/NORangesSet.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: rawspeed::NORangesSet::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
    functionUses: 2
    functionsReached:
    - rawspeed::NORangesSet::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::NotARational
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotARational()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - num_
    - den_
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: rawspeed::NotARational
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotARational(T num_, T den_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/librawspeed/src/librawspeed/adt/NotARational.h:40,1
    - Dst: T2
      Src: /src/librawspeed/src/librawspeed/adt/NotARational.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: operator T2() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached:
    - T2
    linkageType: ''
    returnType: void
    signature: void operator T2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::NotARational
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotARational()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - num_
    - den_
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: rawspeed::NotARational
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotARational(T num_, T den_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/librawspeed/src/librawspeed/adt/NotARational.h:40,1
    - Dst: T2
      Src: /src/librawspeed/src/librawspeed/adt/NotARational.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: operator T2() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/NotARational.h
    functionUses: 0
    functionsReached:
    - T2
    linkageType: ''
    returnType: void
    signature: void operator T2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorTy
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:101,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' storage'
    - width
    - height
    argTypes:
    - std::vector<cvless_value_type, AllocatorType>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: rawspeed::Array2DRef::create
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - VectorTy
    - data
    linkageType: ''
    returnType: Array2DRef<T>
    signature: "Array2DRef<T> create(std::vector<cvless_value_type, AllocatorType>&
      storage, int width,\n         int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:129,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:130,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:131,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:132,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:133,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:135,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: rawspeed::Array2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 1
    functionsReached:
    - invariant
    - rawspeed::Array2DRef<T>::establishClassInvariants
    - size
    linkageType: ''
    returnType: void
    signature: void Array2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data_
    - width_
    - height_
    - pitch_
    argTypes:
    - Array1DRef<T>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void Array2DRef<T>::Array2DRef(Array1DRef<T> data_, const int width_,\n
      \                                const int height_, const int pitch_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data_
    - width_
    - height_
    - pitch_
    argTypes:
    - T*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void Array2DRef<T>::Array2DRef(T* data_, const int width_, const int
      height_,\n                                 const int pitch_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data_
    - width_
    - height_
    argTypes:
    - T*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void Array2DRef<T>::Array2DRef(T* data_, const int width_, const int
      height_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: rawspeed::Array2DRef<T>::pitch
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::pitch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed::Array2DRef<T>::width
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: rawspeed::Array2DRef<T>::height
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:179,1
    - Dst: rawspeed::Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:180,1
    - Dst: rawspeed::Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:180,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    - Dst: rawspeed::Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    - Dst: rawspeed::Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: rawspeed::Array2DRef<T>::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::height
    - rawspeed::Array2DRef<T>::width
    - rawspeed::Array2DRef<T>::establishClassInvariants
    - getCrop
    linkageType: ''
    returnType: Optional<Array1DRef<T>>
    signature: Optional<Array1DRef<T>> Array2DRef<T>::getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:187,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:189,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:189,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:190,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: Array2DRef<T>::operator[](const int row) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - getCrop
    - height
    - width
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: Array1DRef<T>
    signature: Array1DRef<T> Array2DRef<T>::operator[](const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:196,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:197,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:198,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: '&

      Array2DRef<T>::operator()(const int row, const int col) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - width
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T &

      Array2DRef<T>::operator()(const int row, const int col) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::Array2DRef::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array2DRef(Array2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorTy
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:101,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' storage'
    - width
    - height
    argTypes:
    - std::vector<cvless_value_type, AllocatorType>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: rawspeed::Array2DRef::create
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - VectorTy
    - data
    linkageType: ''
    returnType: Array2DRef<T>
    signature: "Array2DRef<T> create(std::vector<cvless_value_type, AllocatorType>&
      storage, int width,\n         int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:129,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:130,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:131,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:132,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:133,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:135,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: rawspeed::Array2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 9
    functionsReached:
    - invariant
    - rawspeed::Array2DRef<T>::establishClassInvariants
    - size
    linkageType: ''
    returnType: void
    signature: void Array2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data_
    - width_
    - height_
    - pitch_
    argTypes:
    - Array1DRef<T>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void Array2DRef<T>::Array2DRef(Array1DRef<T> data_, const int width_,\n
      \                                const int height_, const int pitch_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data_
    - width_
    - height_
    - pitch_
    argTypes:
    - T*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void Array2DRef<T>::Array2DRef(T* data_, const int width_, const int
      height_,\n                                 const int pitch_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data_
    - width_
    - height_
    argTypes:
    - T*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rawspeed::Array2DRef<T>::Array2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void Array2DRef<T>::Array2DRef(T* data_, const int width_, const int
      height_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: rawspeed::Array2DRef<T>::pitch
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::pitch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed::Array2DRef<T>::width
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 1
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: rawspeed::Array2DRef<T>::height
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 1
    functionsReached:
    - rawspeed::Array2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array2DRef<T>::height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:179,1
    - Dst: rawspeed::Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:180,1
    - Dst: rawspeed::Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:180,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    - Dst: rawspeed::Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    - Dst: rawspeed::Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: rawspeed::Array2DRef<T>::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array2DRef<T>::height
    - rawspeed::Array2DRef<T>::width
    - rawspeed::Array2DRef<T>::establishClassInvariants
    - getCrop
    linkageType: ''
    returnType: Optional<Array1DRef<T>>
    signature: Optional<Array1DRef<T>> Array2DRef<T>::getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:187,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:189,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:189,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:190,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: Array2DRef<T>::operator[](const int row) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - getCrop
    - height
    - width
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: Array1DRef<T>
    signature: Array1DRef<T> Array2DRef<T>::operator[](const int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:196,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:197,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:198,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/Array2DRef.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: '&

      Array2DRef<T>::operator()(const int row, const int col) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
    functionUses: 0
    functionsReached:
    - width
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T &

      Array2DRef<T>::operator()(const int row, const int col) const'
  - 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: invariant
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Invariant.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invariant(expr)
  - 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: __has_builtin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Invariant.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - 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: invariant
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Invariant.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invariant(expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/adt/Invariant.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - precond
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: rawspeed::invariant
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Invariant.h
    functionUses: 11
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void invariant(bool precond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/adt/Invariant.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - precond
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: rawspeed::invariant
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Invariant.h
    functionUses: 11
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void invariant(bool precond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_init_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: rawspeed::final
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_init_lock
    linkageType: ''
    returnType: Mutex
    signature: Mutex final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(const Mutex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(Mutex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_destroy_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~Mutex()
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_destroy_lock
    linkageType: ''
    returnType: void
    signature: void ~Mutex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_set_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_set_lock
    linkageType: ''
    returnType: void
    signature: void ACQUIRE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_unset_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_unset_lock
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_test_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: rawspeed::TRY_ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_test_lock
    linkageType: ''
    returnType: void
    signature: void TRY_ACQUIRE(true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& operator!() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Mutex
    signature: Mutex & operator!() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Mutex
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: rawspeed::final
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - rawspeed::Mutex
    linkageType: ''
    returnType: Mutex
    signature: Mutex final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(const Mutex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(Mutex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ACQUIRE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - 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: rawspeed::TRY_ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TRY_ACQUIRE(true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& operator!() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Mutex
    signature: Mutex & operator!() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:107,1
    - Dst: rawspeed::MutexLocker
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    - Dst: Mutex*::Unlock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached:
    - rawspeed::MutexLocker
    - Mutex*::Unlock
    - Lock
    linkageType: ''
    returnType: class SCOPED_CAPABILITY
    signature: class SCOPED_CAPABILITY MutexLocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - Lock
    linkageType: ''
    returnType: void
    signature: void ACQUIRE(mu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutexLocker(const MutexLocker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutexLocker(MutexLocker&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unlock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - Unlock
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_init_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: rawspeed::final
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_init_lock
    linkageType: ''
    returnType: Mutex
    signature: Mutex final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(const Mutex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(Mutex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_destroy_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: ~Mutex()
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_destroy_lock
    linkageType: ''
    returnType: void
    signature: void ~Mutex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_set_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_set_lock
    linkageType: ''
    returnType: void
    signature: void ACQUIRE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_unset_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_unset_lock
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omp_test_lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: rawspeed::TRY_ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - omp_test_lock
    linkageType: ''
    returnType: void
    signature: void TRY_ACQUIRE(true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& operator!() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Mutex
    signature: Mutex & operator!() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Mutex
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: rawspeed::final
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - rawspeed::Mutex
    linkageType: ''
    returnType: Mutex
    signature: Mutex final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(const Mutex&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: rawspeed::Mutex
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mutex(Mutex&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ACQUIRE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - 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: rawspeed::TRY_ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TRY_ACQUIRE(true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& operator!() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Mutex
    signature: Mutex & operator!() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:107,1
    - Dst: rawspeed::MutexLocker
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    - Dst: Mutex*::Unlock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 2
    functionsReached:
    - rawspeed::MutexLocker
    - Mutex*::Unlock
    - Lock
    linkageType: ''
    returnType: class SCOPED_CAPABILITY
    signature: class SCOPED_CAPABILITY MutexLocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::ACQUIRE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - Lock
    linkageType: ''
    returnType: void
    signature: void ACQUIRE(mu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutexLocker(const MutexLocker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed::MutexLocker
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MutexLocker(MutexLocker&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unlock
      Src: /src/librawspeed/src/librawspeed/adt/Mutex.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: rawspeed::RELEASE
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Mutex.h
    functionUses: 0
    functionsReached:
    - Unlock
    linkageType: ''
    returnType: void
    signature: void RELEASE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PartitioningOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' it_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void PartitioningOutputIterator(U&& it_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& operator*()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator++(int)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator operator++(int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:67,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - coalesced
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: '& operator=(U coalesced)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitwidth
    - static_cast<PartType>
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator=(U coalesced)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PartitioningOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' it_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void PartitioningOutputIterator(U&& it_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& operator*()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator++(int)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator operator++(int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PartType>
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:67,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - coalesced
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: '& operator=(U coalesced)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
    functionUses: 0
    functionsReached:
    - bitwidth<PartType>
    - static_cast<PartType>
    linkageType: ''
    returnType: PartitioningOutputIterator
    signature: PartitioningOutputIterator & operator=(U coalesced)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(CroppedArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(CroppedArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:64,1
    - Dst: Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - Array2DRef<T>::width
    - Array2DRef<T>::height
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(Array2DRef<T> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CroppedArray2DRef( // NOLINT(google-explicit-constructor)\n      CroppedArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:80,1
    - Dst: pitch
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: rawspeed::CroppedArray2DRef::getAsArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - pitch
    - establishClassInvariants
    linkageType: ''
    returnType: Array2DRef<T>
    signature: Array2DRef<T> getAsArray2DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:100,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:103,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:104,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:105,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:107,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:108,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:108,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:109,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:109,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 1
    functionsReached:
    - width
    - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    - invariant
    - height
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - base_
    - offsetCols_
    - offsetRows_
    - croppedWidth_
    - croppedHeight_
    argTypes:
    - Array2DRef<T>
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: rawspeed::CroppedArray2DRef<T>::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void CroppedArray2DRef<T>::CroppedArray2DRef(Array2DRef<T> base_,\n
      \                                              int offsetCols_, int offsetRows_,\n
      \                                              int croppedWidth_,\n                                               int
      croppedHeight_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:127,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:128,1
    - Dst: base
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:129,1
    - Dst: Array1DRef::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: CroppedArray2DRef<T>::operator[](const int row) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - Array1DRef::getCrop
    - base
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray2DRef<T>::operator[](const int row)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:136,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: '& CroppedArray2DRef<T>::operator()(const int row, const int col)
      const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T & CroppedArray2DRef<T>::operator()(const int row, const int col)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(CroppedArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(CroppedArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<T>::width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:64,1
    - Dst: Array2DRef<T>::height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array2DRef<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - Array2DRef<T>::width
    - Array2DRef<T>::height
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef(Array2DRef<T> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: rawspeed::CroppedArray2DRef::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CroppedArray2DRef( // NOLINT(google-explicit-constructor)\n      CroppedArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:80,1
    - Dst: pitch
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: rawspeed::CroppedArray2DRef::getAsArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - pitch
    - establishClassInvariants
    linkageType: ''
    returnType: Array2DRef<T>
    signature: Array2DRef<T> getAsArray2DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:100,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:103,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:104,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:105,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:107,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:108,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:108,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:109,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:109,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 3
    functionsReached:
    - width
    - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    - invariant
    - height
    linkageType: ''
    returnType: void
    signature: void CroppedArray2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - base_
    - offsetCols_
    - offsetRows_
    - croppedWidth_
    - croppedHeight_
    argTypes:
    - Array2DRef<T>
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: rawspeed::CroppedArray2DRef<T>::CroppedArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void CroppedArray2DRef<T>::CroppedArray2DRef(Array2DRef<T> base_,\n
      \                                              int offsetCols_, int offsetRows_,\n
      \                                              int croppedWidth_,\n                                               int
      croppedHeight_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:127,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:128,1
    - Dst: base
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:129,1
    - Dst: Array1DRef::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: CroppedArray2DRef<T>::operator[](const int row) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - Array1DRef::getCrop
    - base
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray2DRef<T>::operator[](const int row)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:136,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: '& CroppedArray2DRef<T>::operator()(const int row, const int col)
      const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
    functionUses: 0
    functionsReached:
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T & CroppedArray2DRef<T>::operator()(const int row, const int col)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:58,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: static_cast<WideT>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:61,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - implicit_cast<T>
    - implicit_cast<int>
    - bitwidth<T>
    - static_cast<WideT>
    - invariant
    - std::min
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:69,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - bitwidth<T>
    - implicit_cast<int>
    - invariant
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:84,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:85,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: rawspeed::impl::logicalRightShiftSafe
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:95,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:97,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: rawspeed::impl::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - rawspeed::impl::logicalRightShiftSafe
    - memcpy
    - getLE<T>
    - Array1DRef<std::byte>::begin
    - Array1DRef<const std::byte>::begin
    - invariant
    - Array1DRef<const std::byte>::getCrop
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:58,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: static_cast<WideT>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:61,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 1
    functionsReached:
    - implicit_cast<T>
    - implicit_cast<int>
    - bitwidth<T>
    - static_cast<WideT>
    - invariant
    - std::min
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:69,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 1
    functionsReached:
    - bitwidth<T>
    - implicit_cast<int>
    - invariant
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:84,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:85,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: rawspeed::impl::logicalRightShiftSafe
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:95,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:97,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: rawspeed::impl::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - rawspeed::impl::logicalRightShiftSafe
    - memcpy
    - getLE<T>
    - Array1DRef<std::byte>::begin
    - Array1DRef<const std::byte>::begin
    - invariant
    - Array1DRef<const std::byte>::getCrop
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:106,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:106,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:108,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:108,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:109,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:109,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:111,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:113,1
    - Dst: impl::variableLengthLoad<uint8_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:115,1
    - Dst: impl::variableLengthLoad<uint16_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:118,1
    - Dst: impl::variableLengthLoad<uint32_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:121,1
    - Dst: impl::variableLengthLoad<uint64_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:124,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: rawspeed::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - impl::variableLengthLoad<uint8_t>
    - isPowerOfTwo
    - __builtin_unreachable
    - impl::variableLengthLoad<uint16_t>
    - Array1DRef<std::byte>::size
    - impl::variableLengthLoad<uint64_t>
    - Array1DRef<const std::byte>::size
    - impl::variableLengthLoad<uint32_t>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(const Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:133,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:133,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:134,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:134,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:136,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::end
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:140,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:142,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:144,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: rawspeed::variableLengthLoadNaiveViaConditionalLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::out
    - std::fill
    - Array1DRef<std::byte>::end
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoadNaiveViaConditionalLoad(\n    Array1DRef<std::byte>
      out, Array1DRef<const std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:151,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:151,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:152,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:154,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: Array1DRef<std::byte>::end
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:158,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:158,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:160,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:161,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:161,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:165,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:166,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:166,1
    - Dst: Array1DRef<std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:168,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:169,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: rawspeed::variableLengthLoadNaiveViaMemcpy
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - Array1DRef<std::byte>::getCrop
    - memcpy
    - Array1DRef<const std::byte>::getCrop
    - std::fill
    - Array1DRef<std::byte>::end
    - Array1DRef<const std::byte>::begin
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - std::min
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoadNaiveViaMemcpy(Array1DRef<std::byte> out,\n
      \                                            Array1DRef<const std::byte> in,\n
      \                                            int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:58,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: static_cast<WideT>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:61,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 2
    functionsReached:
    - implicit_cast<T>
    - implicit_cast<int>
    - bitwidth<T>
    - static_cast<WideT>
    - invariant
    - std::min
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:69,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 2
    functionsReached:
    - bitwidth<T>
    - implicit_cast<int>
    - invariant
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:84,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:85,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: rawspeed::impl::logicalRightShiftSafe
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:95,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:97,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: rawspeed::impl::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - rawspeed::impl::logicalRightShiftSafe
    - memcpy
    - getLE<T>
    - Array1DRef<std::byte>::begin
    - Array1DRef<const std::byte>::begin
    - invariant
    - Array1DRef<const std::byte>::getCrop
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:58,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:59,1
    - Dst: static_cast<WideT>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:61,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 3
    functionsReached:
    - implicit_cast<T>
    - implicit_cast<int>
    - bitwidth<T>
    - static_cast<WideT>
    - invariant
    - std::min
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:69,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - val
    - shAmt
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::impl::logicalRightShiftSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 3
    functionsReached:
    - bitwidth<T>
    - implicit_cast<int>
    - invariant
    linkageType: ''
    returnType: T
    signature: T logicalRightShiftSafe(T val, int shAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:80,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:83,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:84,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:85,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:90,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:92,1
    - Dst: rawspeed::impl::logicalRightShiftSafe
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:95,1
    - Dst: getLE<T>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:97,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: rawspeed::impl::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - rawspeed::impl::logicalRightShiftSafe
    - memcpy
    - getLE<T>
    - Array1DRef<std::byte>::begin
    - Array1DRef<const std::byte>::begin
    - invariant
    - Array1DRef<const std::byte>::getCrop
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:106,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:106,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:107,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:108,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:108,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:109,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:109,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:110,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:111,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:113,1
    - Dst: impl::variableLengthLoad<uint8_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:115,1
    - Dst: impl::variableLengthLoad<uint16_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:118,1
    - Dst: impl::variableLengthLoad<uint32_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:121,1
    - Dst: impl::variableLengthLoad<uint64_t>
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:124,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: rawspeed::variableLengthLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - impl::variableLengthLoad<uint8_t>
    - isPowerOfTwo
    - __builtin_unreachable
    - impl::variableLengthLoad<uint16_t>
    - Array1DRef<std::byte>::size
    - impl::variableLengthLoad<uint64_t>
    - Array1DRef<const std::byte>::size
    - impl::variableLengthLoad<uint32_t>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoad(const Array1DRef<std::byte> out,\n                               Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:133,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:133,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:134,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:134,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:135,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:136,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::end
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:138,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:140,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:142,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:144,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: rawspeed::variableLengthLoadNaiveViaConditionalLoad
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::out
    - std::fill
    - Array1DRef<std::byte>::end
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoadNaiveViaConditionalLoad(\n    Array1DRef<std::byte>
      out, Array1DRef<const std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:151,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:151,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:152,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:153,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:154,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: Array1DRef<std::byte>::end
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:156,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:158,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:158,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:160,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:161,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:161,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:165,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:166,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:166,1
    - Dst: Array1DRef<std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:168,1
    - Dst: Array1DRef<const std::byte>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:169,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:170,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    - Dst: Array1DRef<std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    - Dst: Array1DRef<const std::byte>::begin
      Src: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: rawspeed::variableLengthLoadNaiveViaMemcpy
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    functionUses: 0
    functionsReached:
    - Array1DRef<std::byte>::getCrop
    - memcpy
    - Array1DRef<const std::byte>::getCrop
    - std::fill
    - Array1DRef<std::byte>::end
    - Array1DRef<const std::byte>::begin
    - Array1DRef<std::byte>::begin
    - Array1DRef<std::byte>::size
    - Array1DRef<const std::byte>::size
    - std::min
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void variableLengthLoadNaiveViaMemcpy(Array1DRef<std::byte> out,\n
      \                                            Array1DRef<const std::byte> in,\n
      \                                            int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: rawspeed::RAWSPEED_READNONE::isPowerOfTwo
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE isPowerOfTwo(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::bitwidth
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned RAWSPEED_READNONE
    signature: unsigned RAWSPEED_READNONE bitwidth([[maybe_unused]] T unused = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    - Dst: std::countl_one
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed::numSignBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - static_cast<SignedT>
    - std::countl_zero
    - std::countl_one
    linkageType: ''
    returnType: unsigned
    signature: unsigned numSignBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:57,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: rawspeed::numActiveBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitwidth
    - std::countl_zero
    linkageType: ''
    returnType: unsigned
    signature: unsigned numActiveBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::numActiveBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::numActiveBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 1
    functionsReached:
    - rawspeed::numActiveBits
    - static_cast<uint32_t>
    linkageType: ''
    returnType: unsigned
    signature: unsigned numActiveBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:69,1
    - Dst: rawspeed::numSignBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed::numSignificantBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::numSignBits
    - rawspeed::bitwidth
    linkageType: ''
    returnType: unsigned
    signature: unsigned numSignificantBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:80,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:80,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    - Dst: std::clamp
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: rawspeed::RAWSPEED_READNONE::clampBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - implicit_cast<T>
    - std::clamp
    - bitwidth<T>
    - T
    - invariant
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: auto
    signature: auto RAWSPEED_READNONE clampBits(T value, unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:88,1
    - Dst: nBits < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:88,1
    - Dst: static_cast<UnsignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: rawspeed::RAWSPEED_READNONE::isIntN
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - static_cast<UnsignedT>
    - nBits < bitwidth<T>
    - invariant
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE isIntN(T value, unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:98,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:99,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:99,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:100,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:102,1
    - Dst: numHighPaddingBits < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: rawspeed::extractLowBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 32
    functionsReached:
    - rawspeed::bitwidth
    - numHighPaddingBits < bitwidth<T>
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE extractLowBits(T value, unsigned nBits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:112,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:112,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed::extractLowBitsSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitwidth
    - rawspeed::extractLowBits
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE extractLowBitsSafe(T value, unsigned nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:122,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:123,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:125,1
    - Dst: numLowBitsToSkip < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: rawspeed::extractHighBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 32
    functionsReached:
    - rawspeed::bitwidth
    - numLowBitsToSkip < bitwidth<T>
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: "RAWSPEED_READNONE extractHighBits(\n    T value, unsigned nBits, unsigned
      effectiveBitwidth = bitwidth<T>())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:133,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:134,1
    - Dst: static_cast<SignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: rawspeed::RAWSPEED_READNONE::signExtend
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - bitwidth<T>
    - static_cast<SignedT>
    - invariant
    linkageType: ''
    returnType: typename std::make_signed_t<T>
    signature: typename std::make_signed_t<T> RAWSPEED_READNONE signExtend(T value,
      unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __has_builtin
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:142,1
    - Dst: __builtin_bitreverse8
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: rawspeed::bitreverse
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - __builtin_bitreverse8
    - __has_builtin
    linkageType: ''
    returnType: T
    signature: T bitreverse(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bitreverse32
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: rawspeed::bitreverse
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - __builtin_bitreverse32
    linkageType: ''
    returnType: T
    signature: T bitreverse(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __has_builtin
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:162,1
    - Dst: rawspeed::bitreverse
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:164,1
    - Dst: std::memcpy
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:167,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:167,1
    - Dst: rawspeed::bitreverse
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:168,1
    - Dst: __builtin_bswap32
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:169,1
    - Dst: std::memcpy
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:170,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<T, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: rawspeed::bitreverse_each
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitreverse
    - __has_builtin
    - std::array<T, 4>::data
    - std::memcpy
    - __builtin_bswap32
    linkageType: ''
    returnType: std::array<T, 4>
    signature: std::array<T, 4> bitreverse_each(std::array<T, 4> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: rawspeed::RAWSPEED_READNONE::isPowerOfTwo
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE isPowerOfTwo(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::bitwidth
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned RAWSPEED_READNONE
    signature: unsigned RAWSPEED_READNONE bitwidth([[maybe_unused]] T unused = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    - Dst: std::countl_one
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: rawspeed::numSignBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 1
    functionsReached:
    - static_cast<SignedT>
    - std::countl_zero
    - std::countl_one
    linkageType: ''
    returnType: unsigned
    signature: unsigned numSignBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:57,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: rawspeed::numActiveBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 1
    functionsReached:
    - rawspeed::bitwidth
    - std::countl_zero
    linkageType: ''
    returnType: unsigned
    signature: unsigned numActiveBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::numActiveBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::numActiveBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 2
    functionsReached:
    - rawspeed::numActiveBits
    - static_cast<uint32_t>
    linkageType: ''
    returnType: unsigned
    signature: unsigned numActiveBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:69,1
    - Dst: rawspeed::numSignBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: rawspeed::numSignificantBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::numSignBits
    - rawspeed::bitwidth
    linkageType: ''
    returnType: unsigned
    signature: unsigned numSignificantBits(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:80,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:80,1
    - Dst: implicit_cast<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:81,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    - Dst: std::clamp
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: rawspeed::RAWSPEED_READNONE::clampBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - implicit_cast<T>
    - std::clamp
    - bitwidth<T>
    - T
    - invariant
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: auto
    signature: auto RAWSPEED_READNONE clampBits(T value, unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:88,1
    - Dst: nBits < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:88,1
    - Dst: static_cast<UnsignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: rawspeed::RAWSPEED_READNONE::isIntN
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - static_cast<UnsignedT>
    - nBits < bitwidth<T>
    - invariant
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE isIntN(T value, unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:98,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:99,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:99,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:100,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:102,1
    - Dst: numHighPaddingBits < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: rawspeed::extractLowBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 33
    functionsReached:
    - rawspeed::bitwidth
    - numHighPaddingBits < bitwidth<T>
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE extractLowBits(T value, unsigned nBits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:112,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:112,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: rawspeed::extractLowBitsSafe
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitwidth
    - rawspeed::extractLowBits
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE extractLowBitsSafe(T value, unsigned nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:122,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:123,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:125,1
    - Dst: numLowBitsToSkip < bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: rawspeed::extractHighBits
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 32
    functionsReached:
    - rawspeed::bitwidth
    - numLowBitsToSkip < bitwidth<T>
    - rawspeed::invariant
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: "RAWSPEED_READNONE extractHighBits(\n    T value, unsigned nBits, unsigned
      effectiveBitwidth = bitwidth<T>())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:133,1
    - Dst: bitwidth<T>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:134,1
    - Dst: static_cast<SignedT>
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - value
    - nBits
    argTypes:
    - T
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: rawspeed::RAWSPEED_READNONE::signExtend
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - bitwidth<T>
    - static_cast<SignedT>
    - invariant
    linkageType: ''
    returnType: typename std::make_signed_t<T>
    signature: typename std::make_signed_t<T> RAWSPEED_READNONE signExtend(T value,
      unsigned int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __has_builtin
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:142,1
    - Dst: __builtin_bitreverse8
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: rawspeed::bitreverse
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 1
    functionsReached:
    - __builtin_bitreverse8
    - __has_builtin
    linkageType: ''
    returnType: T
    signature: T bitreverse(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bitreverse32
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: rawspeed::bitreverse
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 1
    functionsReached:
    - __builtin_bitreverse32
    linkageType: ''
    returnType: T
    signature: T bitreverse(const T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __has_builtin
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:162,1
    - Dst: rawspeed::bitreverse
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:164,1
    - Dst: std::memcpy
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:167,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:167,1
    - Dst: rawspeed::bitreverse
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:168,1
    - Dst: __builtin_bswap32
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:169,1
    - Dst: std::memcpy
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:170,1
    - Dst: std::array<T, 4>::data
      Src: /src/librawspeed/src/librawspeed/adt/Bit.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<T, 4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: rawspeed::bitreverse_each
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Bit.h
    functionUses: 0
    functionsReached:
    - rawspeed::bitreverse
    - __has_builtin
    - std::array<T, 4>::data
    - std::memcpy
    - __builtin_bswap32
    linkageType: ''
    returnType: std::array<T, 4>
    signature: std::array<T, 4> bitreverse_each(std::array<T, 4> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: '& get_allocator() const noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type & get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DefaultInitAllocatorAdaptor() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' allocator_'
    argTypes:
    - allocator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DefaultInitAllocatorAdaptor(\n      const allocator_type& allocator_)
      noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - "\n          allocator_"
    argTypes:
    - "DefaultInitAllocatorAdaptor<\n          To, typename allocator_traits::template
      rebind_alloc<To>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - get_allocator
    linkageType: ''
    returnType: void
    signature: "void DefaultInitAllocatorAdaptor(\n      const DefaultInitAllocatorAdaptor<\n
      \         To, typename allocator_traits::template rebind_alloc<To>>&\n          allocator_)
      noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DefaultInitAllocatorAdaptor::allocate
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::DefaultInitAllocatorAdaptor::allocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 1
    functionsReached:
    - rawspeed::DefaultInitAllocatorAdaptor::allocate
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DefaultInitAllocatorAdaptor::deallocate
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: rawspeed::DefaultInitAllocatorAdaptor::deallocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 1
    functionsReached:
    - rawspeed::DefaultInitAllocatorAdaptor::deallocate
    linkageType: ''
    returnType: void
    signature: void deallocate(T* p, std::size_t n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void*>
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:76,1
    - Dst: U::U
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: rawspeed::DefaultInitAllocatorAdaptor::construct
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - U::U
    linkageType: ''
    returnType: void
    signature: "void construct(U* ptr) const\n      noexcept(std::is_nothrow_default_constructible_v<U>)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:90,1
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - DefaultInitAllocatorAdaptor<T0, A0>
    - DefaultInitAllocatorAdaptor<T1, A1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: "operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - get_allocator
    linkageType: ''
    returnType: bool
    signature: "bool operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - DefaultInitAllocatorAdaptor<T0, A0>
    - DefaultInitAllocatorAdaptor<T1, A1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: "operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: '& get_allocator() const noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type & get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DefaultInitAllocatorAdaptor() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' allocator_'
    argTypes:
    - allocator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DefaultInitAllocatorAdaptor(\n      const allocator_type& allocator_)
      noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - "\n          allocator_"
    argTypes:
    - "DefaultInitAllocatorAdaptor<\n          To, typename allocator_traits::template
      rebind_alloc<To>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - get_allocator
    linkageType: ''
    returnType: void
    signature: "void DefaultInitAllocatorAdaptor(\n      const DefaultInitAllocatorAdaptor<\n
      \         To, typename allocator_traits::template rebind_alloc<To>>&\n          allocator_)
      noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DefaultInitAllocatorAdaptor::allocate
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::DefaultInitAllocatorAdaptor::allocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 2
    functionsReached:
    - rawspeed::DefaultInitAllocatorAdaptor::allocate
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DefaultInitAllocatorAdaptor::deallocate
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: rawspeed::DefaultInitAllocatorAdaptor::deallocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 2
    functionsReached:
    - rawspeed::DefaultInitAllocatorAdaptor::deallocate
    linkageType: ''
    returnType: void
    signature: void deallocate(T* p, std::size_t n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void*>
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:76,1
    - Dst: U::U
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: rawspeed::DefaultInitAllocatorAdaptor::construct
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - U::U
    linkageType: ''
    returnType: void
    signature: "void construct(U* ptr) const\n      noexcept(std::is_nothrow_default_constructible_v<U>)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:90,1
    - Dst: get_allocator
      Src: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - DefaultInitAllocatorAdaptor<T0, A0>
    - DefaultInitAllocatorAdaptor<T1, A1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: "operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached:
    - get_allocator
    linkageType: ''
    returnType: bool
    signature: "bool operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - DefaultInitAllocatorAdaptor<T0, A0>
    - DefaultInitAllocatorAdaptor<T1, A1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: "operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
      A1> const& y) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: rawspeed::iPoint2D::iPoint2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iPoint2D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - value_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::iPoint2D::iPoint2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iPoint2D(value_type a, value_type b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: operator+(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D operator+(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: operator-(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D operator-(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: '& operator+=(const iPoint2D& rhs)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D & operator+=(const iPoint2D& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: '& operator-=(const iPoint2D& rhs)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D & operator-=(const iPoint2D& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: operator==(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator==(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator>(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator>(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator<(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: operator>=(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator>=(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: operator<=(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator<=(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::iPoint2D::hasPositiveArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iPoint2D::iPoint2D
    linkageType: ''
    returnType: void
    signature: void hasPositiveArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:84,1
    - Dst: static_cast<signed_area>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:84,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:85,1
    - Dst: static_cast<signed_area>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: rawspeed::iPoint2D::area
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::abs
    - static_cast<signed_area>
    linkageType: ''
    returnType: void
    signature: void area() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::iPoint2D::isThisInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void isThisInside(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:97,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: rawspeed::iPoint2D::getSmallest
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getSmallest(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pos_'
    - ' dim_'
    argTypes:
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(const iPoint2D& pos_, const iPoint2D& dim_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(int w, int h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - x_pos
    - y_pos
    - w
    - h
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(int x_pos, int y_pos, int w, int h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::iRectangle2D::getTop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getTop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::iRectangle2D::getBottom
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: rawspeed::iRectangle2D::getLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::iRectangle2D::getRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::iRectangle2D::getWidth
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getWidth() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::iRectangle2D::getHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHeight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: rawspeed::iRectangle2D::getTopLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTopLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: rawspeed::iRectangle2D::getBottomRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getBottomRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed::iRectangle2D::getTopRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - iPoint2D
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTopRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: rawspeed::iRectangle2D::getBottomLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - iPoint2D
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getBottomLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: rawspeed::iRectangle2D::hasPositiveArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasPositiveArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:137,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' subPoint'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: rawspeed::iRectangle2D::isPointInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isPointInside(const iPoint2D& subPoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:142,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' subPoint'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: rawspeed::iRectangle2D::isPointInsideInclusive
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isPointInsideInclusive(const iPoint2D& subPoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:147,1
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:147,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:148,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' superRect'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: rawspeed::iRectangle2D::isThisInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isThisInside(const iRectangle2D& superRect) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:152,1
    - Dst: rawspeed::iRectangle2D::area
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: rawspeed::iRectangle2D::area
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached:
    - rawspeed::iRectangle2D::area
    - implicit_cast<unsigned int>
    linkageType: ''
    returnType: auto
    signature: auto area() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' offset_'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: rawspeed::iRectangle2D::offset
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void offset(const iPoint2D& offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' top_left'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: rawspeed::iRectangle2D::setTopLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setTopLeft(const iPoint2D& top_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bottom_right'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: rawspeed::iRectangle2D::setBottomRightAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setBottomRightAbsolute(const iPoint2D& bottom_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' top_left'
    - ' bottom_right'
    argTypes:
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed::iRectangle2D::setAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::setBottomRightAbsolute
    linkageType: ''
    returnType: void
    signature: void setAbsolute(const iPoint2D& top_left, const iPoint2D& bottom_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: rawspeed::iRectangle2D::setAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached:
    - rawspeed::iRectangle2D::setAbsolute
    linkageType: ''
    returnType: void
    signature: void setAbsolute(int x1, int y1, int x2, int y2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' size'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: rawspeed::iRectangle2D::setSize
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setSize(const iPoint2D& size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:178,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:179,1
    - Dst: rawspeed::iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: rawspeed::iRectangle2D::cropArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::max
    - rawspeed::iRectangle2D::hasPositiveArea
    linkageType: ''
    returnType: bool
    signature: bool cropArea()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::cropArea
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: rawspeed::iRectangle2D::cropOffsetToZero
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::cropArea
    linkageType: ''
    returnType: bool
    signature: bool cropOffsetToZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:202,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:203,1
    - Dst: iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:204,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:204,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:205,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:205,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: rawspeed::iRectangle2D::getOverlap
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - std::max
    - iRectangle2D::setAbsolute
    - std::min
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getOverlap(const iRectangle2D& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:212,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:213,1
    - Dst: iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:214,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:214,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:215,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:215,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: rawspeed::iRectangle2D::combine
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - std::max
    - iRectangle2D::setAbsolute
    - std::min
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D combine(const iRectangle2D& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:226,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - b
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: "RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
      iRectangle2D b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
      iRectangle2D b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: rawspeed::iPoint2D::iPoint2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iPoint2D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - value_type
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::iPoint2D::iPoint2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iPoint2D(value_type a, value_type b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: operator+(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D operator+(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: operator-(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D operator-(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: '& operator+=(const iPoint2D& rhs)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D & operator+=(const iPoint2D& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: '& operator-=(const iPoint2D& rhs)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D & operator-=(const iPoint2D& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: operator==(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator==(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator>(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator>(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator<(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: operator>=(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator>=(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: operator<=(const iPoint2D& rhs) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator<=(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::iPoint2D::hasPositiveArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iPoint2D::iPoint2D
    linkageType: ''
    returnType: void
    signature: void hasPositiveArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:84,1
    - Dst: static_cast<signed_area>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:84,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:85,1
    - Dst: static_cast<signed_area>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: rawspeed::iPoint2D::area
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::abs
    - static_cast<signed_area>
    linkageType: ''
    returnType: void
    signature: void area() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::iPoint2D::isThisInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void isThisInside(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:97,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: rawspeed::iPoint2D::getSmallest
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getSmallest(const iPoint2D& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pos_'
    - ' dim_'
    argTypes:
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(const iPoint2D& pos_, const iPoint2D& dim_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(int w, int h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - x_pos
    - y_pos
    - w
    - h
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: rawspeed::iRectangle2D::iRectangle2D
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iRectangle2D(int x_pos, int y_pos, int w, int h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::iRectangle2D::getTop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getTop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::iRectangle2D::getBottom
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: rawspeed::iRectangle2D::getLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::iRectangle2D::getRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::iRectangle2D::getWidth
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getWidth() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::iRectangle2D::getHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHeight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: rawspeed::iRectangle2D::getTopLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTopLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: rawspeed::iRectangle2D::getBottomRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getBottomRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: rawspeed::iRectangle2D::getTopRight
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - iPoint2D
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getTopRight() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: rawspeed::iRectangle2D::getBottomLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - iPoint2D
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D getBottomLeft() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: rawspeed::iRectangle2D::hasPositiveArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasPositiveArea() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:137,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' subPoint'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: rawspeed::iRectangle2D::isPointInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isPointInside(const iPoint2D& subPoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:142,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' subPoint'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: rawspeed::iRectangle2D::isPointInsideInclusive
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isPointInsideInclusive(const iPoint2D& subPoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:147,1
    - Dst: rawspeed::iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:147,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:148,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' superRect'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: rawspeed::iRectangle2D::isThisInside
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - rawspeed::iRectangle2D::getTopLeft
    linkageType: ''
    returnType: void
    signature: void isThisInside(const iRectangle2D& superRect) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:152,1
    - Dst: rawspeed::iRectangle2D::area
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: rawspeed::iRectangle2D::area
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 2
    functionsReached:
    - rawspeed::iRectangle2D::area
    - implicit_cast<unsigned int>
    linkageType: ''
    returnType: auto
    signature: auto area() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' offset_'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: rawspeed::iRectangle2D::offset
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void offset(const iPoint2D& offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' top_left'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: rawspeed::iRectangle2D::setTopLeft
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setTopLeft(const iPoint2D& top_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bottom_right'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: rawspeed::iRectangle2D::setBottomRightAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setBottomRightAbsolute(const iPoint2D& bottom_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' top_left'
    - ' bottom_right'
    argTypes:
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: rawspeed::iRectangle2D::setAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached:
    - rawspeed::iRectangle2D::setBottomRightAbsolute
    linkageType: ''
    returnType: void
    signature: void setAbsolute(const iPoint2D& top_left, const iPoint2D& bottom_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: rawspeed::iRectangle2D::setAbsolute
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 2
    functionsReached:
    - rawspeed::iRectangle2D::setAbsolute
    linkageType: ''
    returnType: void
    signature: void setAbsolute(int x1, int y1, int x2, int y2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' size'
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: rawspeed::iRectangle2D::setSize
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setSize(const iPoint2D& size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:178,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:179,1
    - Dst: rawspeed::iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: rawspeed::iRectangle2D::cropArea
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 1
    functionsReached:
    - std::max
    - rawspeed::iRectangle2D::hasPositiveArea
    linkageType: ''
    returnType: bool
    signature: bool cropArea()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::cropArea
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: rawspeed::iRectangle2D::cropOffsetToZero
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::cropArea
    linkageType: ''
    returnType: bool
    signature: bool cropOffsetToZero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:202,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:203,1
    - Dst: iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:204,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:204,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:205,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:205,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: rawspeed::iRectangle2D::getOverlap
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - std::max
    - iRectangle2D::setAbsolute
    - std::min
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D getOverlap(const iRectangle2D& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:212,1
    - Dst: rawspeed::iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:213,1
    - Dst: iRectangle2D::setAbsolute
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:214,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:214,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:215,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:215,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: rawspeed::iRectangle2D::combine
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::getBottomRight
    - std::max
    - iRectangle2D::setAbsolute
    - std::min
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D combine(const iRectangle2D& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:226,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/adt/Point.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - b
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: "RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
      iRectangle2D b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Point.h
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
      iRectangle2D b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:49,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:50,1
    - Dst: allocator_traits::max_size
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:50,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:52,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:63,1
    - Dst: static_cast<T*>
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:66,1
    - Dst: operator new
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:66,1
    - Dst: static_cast<std::align_val_t>
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:67,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:68,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:68,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - numElts
    argTypes:
    - std::size_t
    assertStmts:
    - condition: "(numElts <= allocator_traits::max_size(*this) &&\n           \"Can
        allocate this many elements.\")"
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: rawspeed::AlignedAllocator::allocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached:
    - allocator_traits::max_size
    - static_cast<std::align_val_t>
    - static_cast<T*>
    - isAligned
    - assert
    - invariant
    - ThrowRSE
    - operator new
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t numElts) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:76,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:77,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: rawspeed::AlignedAllocator::deallocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached:
    - invariant
    - isAligned
    linkageType: ''
    returnType: void
    signature: void deallocate(T* p, std::size_t n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: "operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: "operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:49,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:50,1
    - Dst: allocator_traits::max_size
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:50,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:52,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:63,1
    - Dst: static_cast<T*>
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:66,1
    - Dst: operator new
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:66,1
    - Dst: static_cast<std::align_val_t>
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:67,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:68,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:68,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - numElts
    argTypes:
    - std::size_t
    assertStmts:
    - condition: "(numElts <= allocator_traits::max_size(*this) &&\n           \"Can
        allocate this many elements.\")"
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: rawspeed::AlignedAllocator::allocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached:
    - allocator_traits::max_size
    - static_cast<std::align_val_t>
    - static_cast<T*>
    - isAligned
    - assert
    - invariant
    - ThrowRSE
    - operator new
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t numElts) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:76,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:77,1
    - Dst: isAligned
      Src: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: rawspeed::AlignedAllocator::deallocate
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached:
    - invariant
    - isAligned
    linkageType: ''
    returnType: void
    signature: void deallocate(T* p, std::size_t n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: "operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: "operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
      AlignedAllocator<T2, A2>& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef(CroppedArray1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef(CroppedArray1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CroppedArray1DRef( // NOLINT(google-explicit-constructor)\n      CroppedArray1DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:72,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: rawspeed::CroppedArray1DRef::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - begin
    - size
    linkageType: ''
    returnType: Array1DRef<T>
    signature: Array1DRef<T> getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:95,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:96,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:97,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:98,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:99,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:100,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 1
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - invariant
    - rawspeed::CroppedArray1DRef<T>::size
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base_
    - offset_
    - numElts_
    argTypes:
    - Array1DRef<T>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: rawspeed::CroppedArray1DRef<T>::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void CroppedArray1DRef<T>::CroppedArray1DRef(Array1DRef<T> base_,\n
      \                                              const int offset_,\n                                               const
      int numElts_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:116,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:118,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:119,1
    - Dst: rawspeed::CroppedArray1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - additionalOffset
    - size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: rawspeed::CroppedArray1DRef<T>::getCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 1
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::getCrop
    - invariant
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray1DRef<T>::getCrop(int additionalOffset,
      int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:127,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:129,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:130,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:132,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:133,1
    - Dst: rawspeed::CroppedArray1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - size
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: rawspeed::CroppedArray1DRef<T>::getBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::getCrop
    - invariant
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray1DRef<T>::getBlock(int size, int index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:138,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: rawspeed::CroppedArray1DRef<T>::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:142,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed::CroppedArray1DRef<T>::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: rawspeed::CroppedArray1DRef<T>::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 1
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int CroppedArray1DRef<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:153,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:154,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:155,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: rawspeed::CroppedArray1DRef<T>::addressOf
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 3
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    - invariant
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::addressOf(const int eltIdx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:162,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:163,1
    - Dst: addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& CroppedArray1DRef<T>::operator()(const int eltIdx) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - addressOf
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T & CroppedArray1DRef<T>::operator()(const int eltIdx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef(CroppedArray1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef(CroppedArray1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - CroppedArray1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: rawspeed::CroppedArray1DRef::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CroppedArray1DRef( // NOLINT(google-explicit-constructor)\n      CroppedArray1DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:72,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: rawspeed::CroppedArray1DRef::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - begin
    - size
    linkageType: ''
    returnType: Array1DRef<T>
    signature: Array1DRef<T> getAsArray1DRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:95,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:96,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:97,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:98,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:99,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:100,1
    - Dst: rawspeed::CroppedArray1DRef<T>::size
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 9
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - invariant
    - rawspeed::CroppedArray1DRef<T>::size
    linkageType: ''
    returnType: void
    signature: void CroppedArray1DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base_
    - offset_
    - numElts_
    argTypes:
    - Array1DRef<T>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: rawspeed::CroppedArray1DRef<T>::CroppedArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void CroppedArray1DRef<T>::CroppedArray1DRef(Array1DRef<T> base_,\n
      \                                              const int offset_,\n                                               const
      int numElts_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:116,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:118,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:119,1
    - Dst: rawspeed::CroppedArray1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - additionalOffset
    - size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: rawspeed::CroppedArray1DRef<T>::getCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 3
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::getCrop
    - invariant
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray1DRef<T>::getCrop(int additionalOffset,
      int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:127,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:129,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:130,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:132,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:133,1
    - Dst: rawspeed::CroppedArray1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - size
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: rawspeed::CroppedArray1DRef<T>::getBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::getCrop
    - invariant
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> CroppedArray1DRef<T>::getBlock(int size, int index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:138,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: rawspeed::CroppedArray1DRef<T>::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:142,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: rawspeed::CroppedArray1DRef<T>::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: rawspeed::CroppedArray1DRef<T>::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int CroppedArray1DRef<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CroppedArray1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:153,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:154,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:155,1
    - Dst: rawspeed::CroppedArray1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: rawspeed::CroppedArray1DRef<T>::addressOf
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 6
    functionsReached:
    - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
    - rawspeed::CroppedArray1DRef<T>::addressOf
    - invariant
    linkageType: ''
    returnType: T
    signature: T * CroppedArray1DRef<T>::addressOf(const int eltIdx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:162,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:163,1
    - Dst: addressOf
      Src: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& CroppedArray1DRef<T>::operator()(const int eltIdx) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
    functionUses: 0
    functionsReached:
    - addressOf
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T & CroppedArray1DRef<T>::operator()(const int eltIdx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: rawspeed::Array1DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void Array1DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data_
    - numElts_
    argTypes:
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: rawspeed::Array1DRef<T>::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void Array1DRef<T>::Array1DRef(T* data_, const int numElts_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:111,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:113,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: rawspeed::Array1DRef<T>::getCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> Array1DRef<T>::getCrop(int offset, int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:123,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:124,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:127,1
    - Dst: rawspeed::Array1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - size
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: rawspeed::Array1DRef<T>::getBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<T>::getCrop
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> Array1DRef<T>::getBlock(int size, int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: rawspeed::Array1DRef<T>::addressOf
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T *

      Array1DRef<T>::addressOf(const int eltIdx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:148,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:149,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:150,1
    - Dst: addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: '&

      Array1DRef<T>::operator()(const int eltIdx) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - addressOf
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T &

      Array1DRef<T>::operator()(const int eltIdx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: rawspeed::Array1DRef<T>::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array1DRef<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:160,1
    - Dst: rawspeed::Array1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: rawspeed::Array1DRef<T>::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::addressOf
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T * Array1DRef<T>::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:164,1
    - Dst: rawspeed::Array1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed::Array1DRef<T>::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::addressOf
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T * Array1DRef<T>::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - Array1DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: rawspeed::Array1DRef::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: void
    signature: void Array1DRef(Array1DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: rawspeed::Array1DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 7
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void Array1DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data_
    - numElts_
    argTypes:
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: rawspeed::Array1DRef<T>::Array1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void Array1DRef<T>::Array1DRef(T* data_, const int numElts_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:111,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:113,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: rawspeed::Array1DRef<T>::getCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 1
    functionsReached:
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> Array1DRef<T>::getCrop(int offset, int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:123,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:124,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:126,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:127,1
    - Dst: rawspeed::Array1DRef<T>::getCrop
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - size
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: rawspeed::Array1DRef<T>::getBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<T>::getCrop
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: CroppedArray1DRef<T>
    signature: CroppedArray1DRef<T> Array1DRef<T>::getBlock(int size, int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: rawspeed::Array1DRef<T>::addressOf
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - invariant
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T *

      Array1DRef<T>::addressOf(const int eltIdx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:148,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:149,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:150,1
    - Dst: addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - eltIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: '&

      Array1DRef<T>::operator()(const int eltIdx) const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 0
    functionsReached:
    - addressOf
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: T
    signature: 'T &

      Array1DRef<T>::operator()(const int eltIdx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: rawspeed::Array1DRef<T>::size
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int Array1DRef<T>::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:160,1
    - Dst: rawspeed::Array1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: rawspeed::Array1DRef<T>::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::addressOf
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T * Array1DRef<T>::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Array1DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:164,1
    - Dst: rawspeed::Array1DRef<T>::addressOf
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRef.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed::Array1DRef<T>::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
    functionUses: 2
    functionsReached:
    - rawspeed::Array1DRef<T>::addressOf
    - rawspeed::Array1DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: T
    signature: T * Array1DRef<T>::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Tsrc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: rawspeed::implicit_cast
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Casts.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE implicit_cast(Tsrc value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Tsrc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: rawspeed::implicit_cast
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Casts.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE implicit_cast(Tsrc value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Tsrc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: rawspeed::implicit_cast
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Casts.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE implicit_cast(Tsrc value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Tsrc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: rawspeed::implicit_cast
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Casts.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: RAWSPEED_READNONE
    signature: RAWSPEED_READNONE implicit_cast(Tsrc value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::Range::Range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base_
    - size_
    argTypes:
    - T
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::Range::Range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range(T base_, T2 size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::Range::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::Range::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Range<T>
    - Range<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: operator<(const Range<T>& lhs, const Range<T>& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::pair
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Range<T>& lhs, const Range<T>& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:54,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:57,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:57,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' r'
    - pos
    argTypes:
    - Tr
    - Tv
    assertStmts:
    - condition: (pos >= std::begin(r))
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: rawspeed::RAWSPEED_READNONE::RangeContains
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - std::begin
    - assert
    - std::end
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE RangeContains(const Tr& r, Tv pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:66,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:66,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:72,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:72,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: rawspeed::RAWSPEED_READNONE::RangeContains
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:76,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - T
    assertStmts:
    - condition: (std::begin(r0) != std::begin(r1))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    - condition: (std::begin(ordered.first) < std::begin(ordered.second))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: rawspeed::RAWSPEED_READNONE::RangesOverlap
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - std::begin
    - rawspeed::RAWSPEED_READNONE::RangeContains
    - assert
    - std::minmax
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE RangesOverlap(const T& lhs, const T& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::Range::Range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base_
    - size_
    argTypes:
    - T
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::Range::Range
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Range(T base_, T2 size_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::Range::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::Range::end
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: std::pair
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Range<T>
    - Range<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: operator<(const Range<T>& lhs, const Range<T>& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::pair
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Range<T>& lhs, const Range<T>& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:54,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:57,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:57,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' r'
    - pos
    argTypes:
    - Tr
    - Tv
    assertStmts:
    - condition: (pos >= std::begin(r))
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: rawspeed::RAWSPEED_READNONE::RangeContains
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 1
    functionsReached:
    - std::begin
    - assert
    - std::end
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE RangeContains(const Tr& r, Tv pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:66,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:66,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:71,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:72,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:72,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:75,1
    - Dst: rawspeed::RAWSPEED_READNONE::RangeContains
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:76,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/adt/Range.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - T
    assertStmts:
    - condition: (std::begin(r0) != std::begin(r1))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    - condition: (std::begin(ordered.first) < std::begin(ordered.second))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/adt/Range.h
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: rawspeed::RAWSPEED_READNONE::RangesOverlap
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Range.h
    functionUses: 0
    functionsReached:
    - std::begin
    - rawspeed::RAWSPEED_READNONE::RangeContains
    - assert
    - std::minmax
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READNONE RangesOverlap(const T& lhs, const T& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef(TiledArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef(TiledArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef( // NOLINT(google-explicit-constructor)\n      TiledArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef( // NOLINT(google-explicit-constructor)\n      TiledArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:103,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:104,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:105,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:107,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: rawspeed::TiledArray2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 1
    functionsReached:
    - width
    - invariant
    - height
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data_
    - tileWidth_
    - tileHeight_
    argTypes:
    - Array2DRef<T>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: rawspeed::TiledArray2DRef<T>::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef<T>::TiledArray2DRef(Array2DRef<T> data_,\n                                           const
      int tileWidth_,\n                                           const int tileHeight_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:120,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rawspeed::TiledArray2DRef<T>::numCols
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - width
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int TiledArray2DRef<T>::numCols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:126,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: rawspeed::TiledArray2DRef<T>::numRows
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - height
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int TiledArray2DRef<T>::numRows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:133,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:135,1
    - Dst: numCols
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:136,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:137,1
    - Dst: numRows
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:137,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 143
    functionName: TiledArray2DRef<T>::operator()(const int row, const int col) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - numCols
    - numRows
    - invariant
    - CroppedArray2DRef
    - establishClassInvariants
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> TiledArray2DRef<T>::operator()(const int row,
      const int col) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef(TiledArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef(TiledArray2DRef<T2> RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef( // NOLINT(google-explicit-constructor)\n      TiledArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - RHS
    argTypes:
    - TiledArray2DRef<T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: rawspeed::TiledArray2DRef::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef( // NOLINT(google-explicit-constructor)\n      TiledArray2DRef<T2>
      RHS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:103,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:104,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:105,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:107,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: rawspeed::TiledArray2DRef<T>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 5
    functionsReached:
    - width
    - invariant
    - height
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void TiledArray2DRef<T>::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data_
    - tileWidth_
    - tileHeight_
    argTypes:
    - Array2DRef<T>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: rawspeed::TiledArray2DRef<T>::TiledArray2DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: "void TiledArray2DRef<T>::TiledArray2DRef(Array2DRef<T> data_,\n                                           const
      int tileWidth_,\n                                           const int tileHeight_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:120,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rawspeed::TiledArray2DRef<T>::numCols
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - width
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int TiledArray2DRef<T>::numCols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiledArray2DRef<T>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:126,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: rawspeed::TiledArray2DRef<T>::numRows
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - height
    - rawspeed::TiledArray2DRef<T>::establishClassInvariants
    linkageType: ''
    returnType: int
    signature: int TiledArray2DRef<T>::numRows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:133,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:134,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:135,1
    - Dst: numCols
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:136,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:137,1
    - Dst: numRows
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:137,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - row
    - col
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 143
    functionName: TiledArray2DRef<T>::operator()(const int row, const int col) const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
    functionUses: 0
    functionsReached:
    - numCols
    - numRows
    - invariant
    - CroppedArray2DRef
    - establishClassInvariants
    linkageType: ''
    returnType: CroppedArray2DRef<T>
    signature: CroppedArray2DRef<T> TiledArray2DRef<T>::operator()(const int row,
      const int col) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: rawspeed::Optional::Optional
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::Optional::Optional
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void Optional(U&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: '& operator=(U&& value)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: Optional<T>
    signature: Optional<T> & operator=(U&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::emplace
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:52,1
    - Dst: std::forward<Args>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::Optional::emplace
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 1
    functionsReached:
    - std::forward<Args>
    - rawspeed::Optional::emplace
    linkageType: ''
    returnType: T
    signature: T & emplace(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:56,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:56,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: '* operator->() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:61,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:61,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: '* operator->()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:66,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:66,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: '& operator*() const&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T & operator*() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:71,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:71,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: '& operator*() &'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T & operator*() &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:76,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:76,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:77,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: '&& operator*() &&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - std::move
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T && operator*() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:81,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:81,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:82,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: '&& operator*() const&&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - value
    - std::move
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: T
    signature: T && operator*() const&&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: rawspeed::Optional::has_value
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 1
    functionsReached:
    - rawspeed::Optional::has_value
    linkageType: ''
    returnType: bool
    signature: bool has_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::value_or
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:92,1
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fallback'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::Optional::value_or
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 1
    functionsReached:
    - std::forward<U>
    - rawspeed::Optional::value_or
    linkageType: ''
    returnType: T
    signature: T value_or(U&& fallback) const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::reset
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed::Optional::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 1
    functionsReached:
    - rawspeed::Optional::reset
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Optional<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: operator==(const Optional<T>& lhs, const U& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Optional<T>& lhs, const U& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:105,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:105,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Optional<T>
    - Optional<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: operator==(const Optional<T>& lhs, const Optional<U>& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Optional<T>& lhs, const Optional<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: rawspeed::Optional::Optional
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::Optional::Optional
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void Optional(U&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: '& operator=(U&& value)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: Optional<T>
    signature: Optional<T> & operator=(U&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::emplace
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:52,1
    - Dst: std::forward<Args>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::Optional::emplace
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 2
    functionsReached:
    - std::forward<Args>
    - rawspeed::Optional::emplace
    linkageType: ''
    returnType: T
    signature: T & emplace(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:56,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:56,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: '* operator->() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:61,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:61,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: '* operator->()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:66,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:66,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: '& operator*() const&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T & operator*() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:71,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:71,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: '& operator*() &'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T & operator*() &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:76,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:76,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:77,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: '&& operator*() &&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::move
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T && operator*() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:81,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:81,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:82,1
    - Dst: value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: '&& operator*() const&&'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - std::move
    - invariant
    - has_value
    - value
    linkageType: ''
    returnType: T
    signature: T && operator*() const&&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: rawspeed::Optional::has_value
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 2
    functionsReached:
    - rawspeed::Optional::has_value
    linkageType: ''
    returnType: bool
    signature: bool has_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::value_or
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:92,1
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fallback'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: rawspeed::Optional::value_or
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 2
    functionsReached:
    - std::forward<U>
    - rawspeed::Optional::value_or
    linkageType: ''
    returnType: T
    signature: T value_or(U&& fallback) const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::reset
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rawspeed::Optional::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 2
    functionsReached:
    - rawspeed::Optional::reset
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Optional<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: operator==(const Optional<T>& lhs, const U& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Optional<T>& lhs, const U& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:105,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:105,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/adt/Optional.h:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Optional<T>
    - Optional<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: operator==(const Optional<T>& lhs, const Optional<U>& rhs)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Optional.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Optional<T>& lhs, const Optional<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: rawspeed::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h
    functionUses: 2
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const T>
    signature: Array1DRef<const T> getAsArray1DRef(const std::vector<T>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: rawspeed::getAsArray1DRef
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h
    functionUses: 2
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const T>
    signature: Array1DRef<const T> getAsArray1DRef(const std::vector<T>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:51,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:52,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:53,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed::CoalescingOutputIterator::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - bitwidth<PartType>
    - invariant
    linkageType: ''
    returnType: void
    signature: void establishClassInvariants() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CoalescingOutputIterator::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:57,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:58,1
    - Dst: getLE<CoalescedType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: rawspeed::CoalescingOutputIterator::maybeOutputCoalescedParts
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    - getLE<CoalescedType>
    - rawspeed::CoalescingOutputIterator::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void maybeOutputCoalescedParts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' it_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(U&& it_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:88,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(const CoalescingOutputIterator& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const CoalescingOutputIterator&>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<const CoalescingOutputIterator&>
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(CoalescingOutputIterator&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:99,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:100,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: '& operator=(const CoalescingOutputIterator& other)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - std::swap
    - rawspeed::invariant
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator=(const CoalescingOutputIterator&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const CoalescingOutputIterator&>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: "&\n  operator=(CoalescingOutputIterator&& other) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<const CoalescingOutputIterator&>
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: "CoalescingOutputIterator &\n  operator=(CoalescingOutputIterator&&
      other) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:112,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:116,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:117,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:119,1
    - Dst: maybeOutputCoalescedParts
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:120,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: ~CoalescingOutputIterator()
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - maybeOutputCoalescedParts
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void ~CoalescingOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: '& operator*()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: operator++(int)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:143,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:144,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:145,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:145,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:146,1
    - Dst: rawspeed::getLE
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:147,1
    - Dst: static_cast<CoalescedType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:148,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:149,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:150,1
    - Dst: maybeOutputCoalescedParts
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - part
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: '& operator=(U part)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - rawspeed::getLE
    - maybeOutputCoalescedParts
    - rawspeed::bitwidth
    - static_cast<CoalescedType>
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator=(U part)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:51,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:52,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:53,1
    - Dst: bitwidth<PartType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: rawspeed::CoalescingOutputIterator::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 1
    functionsReached:
    - bitwidth<PartType>
    - invariant
    linkageType: ''
    returnType: void
    signature: void establishClassInvariants() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CoalescingOutputIterator::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:57,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:58,1
    - Dst: getLE<CoalescedType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: rawspeed::CoalescingOutputIterator::maybeOutputCoalescedParts
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    - getLE<CoalescedType>
    - rawspeed::CoalescingOutputIterator::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void maybeOutputCoalescedParts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' it_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(U&& it_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:88,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(const CoalescingOutputIterator& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const CoalescingOutputIterator&>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<const CoalescingOutputIterator&>
    linkageType: ''
    returnType: void
    signature: void CoalescingOutputIterator(CoalescingOutputIterator&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:100,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: '& operator=(const CoalescingOutputIterator& other)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - invariant
    - std::swap
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator=(const CoalescingOutputIterator&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const CoalescingOutputIterator&>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CoalescingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: "&\n  operator=(CoalescingOutputIterator&& other) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - static_cast<const CoalescingOutputIterator&>
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: "CoalescingOutputIterator &\n  operator=(CoalescingOutputIterator&&
      other) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:116,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:119,1
    - Dst: maybeOutputCoalescedParts
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:120,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: ~CoalescingOutputIterator()
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - maybeOutputCoalescedParts
    - invariant
    - establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void ~CoalescingOutputIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: '& operator*()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: operator++(int)
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:143,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:144,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:145,1
    - Dst: bitwidth<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:145,1
    - Dst: bitwidth<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:146,1
    - Dst: getLE<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:147,1
    - Dst: static_cast<CoalescedType>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:148,1
    - Dst: bitwidth<U>
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:149,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:150,1
    - Dst: maybeOutputCoalescedParts
      Src: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - part
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: '& operator=(U part)'
    functionSourceFile: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    functionUses: 0
    functionsReached:
    - maybeOutputCoalescedParts
    - bitwidth<U>
    - getLE<U>
    - invariant
    - static_cast<CoalescedType>
    - establishClassInvariants
    linkageType: ''
    returnType: CoalescingOutputIterator
    signature: CoalescingOutputIterator & operator=(U part)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::BitStreamerReplenisherBase
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:58,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - input_
    argTypes:
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed::BitStreamerReplenisherBase
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - ThrowIOE
    - size
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase(Array1DRef<const std::byte> input_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:66,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:67,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:67,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:68,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase<Tag>::establishClassInvariants() const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: rawspeed::BitStreamerForwardSequentialReplenisher
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamerForwardSequentialReplenisher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: rawspeed::getPos
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    linkageType: ''
    returnType: typename Base::size_type
    signature: typename Base::size_type getPos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:89,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:90,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: rawspeed::getRemainingSize
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::getPos
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - size
    linkageType: ''
    returnType: typename Base::size_type
    signature: typename Base::size_type getRemainingSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:93,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:94,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:95,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - numBytes
    argTypes:
    - typename Base::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: rawspeed::markNumBytesAsConsumed
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void markNumBytesAsConsumed(typename Base::size_type numBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:101,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:104,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:105,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:105,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:109,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:110,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:112,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:112,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:125,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:125,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:127,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:129,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 132
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - rawspeed::implicit_cast
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - memcpy
    - size
    - auto::begin
    - getCrop
    - std::array::data
    - ThrowIOE
    - Array1DRef<std::byte>
    - rawspeed::invariant
    - auto::size
    - rawspeed::getPos
    linkageType: ''
    returnType: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes>
    signature: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:159,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:160,1
    - Dst: std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:160,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:161,1
    - Dst: std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:162,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:162,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:165,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:175,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:176,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:177,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:178,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inputStorage
    argTypes:
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: rawspeed::BitStreamer::fillCache
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - push
    - getHostEndianness
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::size
    - bitwidth<typename StreamTraits::ChunkType>
    - implicit_cast<int>
    - auto::begin
    - rawspeed::BitStreamer::establishClassInvariants
    - getByteSwapped<typename StreamTraits::ChunkType>
    - Array1DRef<std::byte>
    - invariant
    - auto::getBlock
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::data
    - auto::size
    linkageType: ''
    returnType: size_type
    signature: "size_type fillCache(std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>\n
      \               inputStorage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:186,1
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: rawspeed::BitStreamer::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed::BitStreamer::BitStreamer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: rawspeed::BitStreamer::BitStreamer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void BitStreamer(Array1DRef<const std::byte> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:197,1
    - Dst: rawspeed::BitStreamer::getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:200,1
    - Dst: rawspeed::BitStreamer::getFillLevel
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:201,1
    - Dst: getAsByteStreamPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:202,1
    - Dst: rawspeed::BitStreamer::BitStreamer
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:204,1
    - Dst: auto::replenisher::markNumBytesAsConsumed
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:206,1
    - Dst: auto::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:207,1
    - Dst: auto::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:208,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:209,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:210,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: rawspeed::BitStreamer::reload
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - getAsByteStreamPosition
    - rawspeed::BitStreamer::getInputPosition
    - auto::fill
    - auto::getFillLevel
    - std::move
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::getFillLevel
    - rawspeed::BitStreamer::BitStreamer
    - invariant
    - auto::skipBitsNoFill
    - auto::replenisher::markNumBytesAsConsumed
    linkageType: ''
    returnType: void
    signature: void reload()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:217,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:218,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:219,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:220,1
    - Dst: getInput
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:225,1
    - Dst: static_cast<Derived*>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:226,1
    - Dst: markNumBytesAsConsumed
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:227,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: rawspeed::BitStreamer::fill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - markNumBytesAsConsumed
    - rawspeed::BitStreamer::establishClassInvariants
    - invariant
    - getInput
    - static_cast<Derived*>
    linkageType: ''
    returnType: void
    signature: void fill(int nbits = Cache::MaxGetBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:233,1
    - Dst: getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: rawspeed::BitStreamer::getInputPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - getPos
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void getInputPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:239,1
    - Dst: rawspeed::BitStreamer::getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: rawspeed::BitStreamer::getStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::getInputPosition
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: size_type
    signature: size_type getStreamPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:244,1
    - Dst: rawspeed::BitStreamer::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: rawspeed::BitStreamer::getRemainingSize
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::getRemainingSize
    linkageType: ''
    returnType: size_type
    signature: size_type getRemainingSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: rawspeed::BitStreamer::getFillLevel
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void getFillLevel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:254,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:255,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:256,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:257,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: rawspeed::BitStreamer::peekBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - peek
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void peekBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:262,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:263,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:265,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: rawspeed::BitStreamer::skipBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - skip
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void skipBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:270,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:271,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:272,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:273,1
    - Dst: rawspeed::BitStreamer::peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:274,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: rawspeed::BitStreamer::getBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::peekBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::skipBitsNoFill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:280,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:281,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:282,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:283,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:284,1
    - Dst: rawspeed::BitStreamer::peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: rawspeed::BitStreamer::peekBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::peekBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peekBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:289,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:290,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: rawspeed::BitStreamer::skipBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::skipBitsNoFill
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: void
    signature: void skipBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:295,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:296,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:297,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:298,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:299,1
    - Dst: rawspeed::BitStreamer::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: rawspeed::BitStreamer::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::getBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBits(int nbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:306,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:310,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:311,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:314,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: rawspeed::BitStreamer::skipManyBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::skipBitsNoFill
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: void
    signature: void skipManyBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:322,1
    - Dst: rawspeed::BitStreamer::skipManyBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: rawspeed::BitStreamer::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::skipManyBits
    linkageType: ''
    returnType: void
    signature: void skipBytes(int nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::BitStreamerReplenisherBase
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:58,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - input_
    argTypes:
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed::BitStreamerReplenisherBase
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - ThrowIOE
    - size
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase(Array1DRef<const std::byte> input_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:66,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:67,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:67,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:68,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void BitStreamerReplenisherBase<Tag>::establishClassInvariants() const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: rawspeed::BitStreamerForwardSequentialReplenisher
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamerForwardSequentialReplenisher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: rawspeed::getPos
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    linkageType: ''
    returnType: typename Base::size_type
    signature: typename Base::size_type getPos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:89,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:90,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: rawspeed::getRemainingSize
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::getPos
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - size
    linkageType: ''
    returnType: typename Base::size_type
    signature: typename Base::size_type getRemainingSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:93,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:94,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:95,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - numBytes
    argTypes:
    - typename Base::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: rawspeed::markNumBytesAsConsumed
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void markNumBytesAsConsumed(typename Base::size_type numBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:101,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:104,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:105,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:105,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:109,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:110,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:112,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:112,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:114,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:115,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:125,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:125,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:127,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:129,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 132
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - std::array::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - rawspeed::implicit_cast
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - memcpy
    - size
    - auto::begin
    - getCrop
    - std::array::data
    - ThrowIOE
    - Array1DRef<std::byte>
    - rawspeed::invariant
    - auto::size
    - rawspeed::getPos
    linkageType: ''
    returnType: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes>
    signature: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:159,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:160,1
    - Dst: std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:160,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:161,1
    - Dst: std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:162,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:162,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:165,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:175,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:176,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:177,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:178,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inputStorage
    argTypes:
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: rawspeed::BitStreamer::fillCache
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - push
    - getHostEndianness
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::size
    - bitwidth<typename StreamTraits::ChunkType>
    - implicit_cast<int>
    - auto::begin
    - rawspeed::BitStreamer::establishClassInvariants
    - getByteSwapped<typename StreamTraits::ChunkType>
    - Array1DRef<std::byte>
    - invariant
    - auto::getBlock
    - std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>::data
    - auto::size
    linkageType: ''
    returnType: size_type
    signature: "size_type fillCache(std::array<std::byte, BitStreamerTraits<Derived>::MaxProcessBytes>\n
      \               inputStorage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:186,1
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: rawspeed::BitStreamer::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 19
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: rawspeed::BitStreamer::BitStreamer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitStreamer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Array1DRef<const std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: rawspeed::BitStreamer::BitStreamer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void BitStreamer(Array1DRef<const std::byte> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:197,1
    - Dst: rawspeed::BitStreamer::getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:200,1
    - Dst: rawspeed::BitStreamer::getFillLevel
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:201,1
    - Dst: getAsByteStreamPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:202,1
    - Dst: rawspeed::BitStreamer::BitStreamer
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:204,1
    - Dst: auto::replenisher::markNumBytesAsConsumed
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:206,1
    - Dst: auto::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:207,1
    - Dst: auto::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:208,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:209,1
    - Dst: auto::getFillLevel
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:210,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: rawspeed::BitStreamer::reload
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - getAsByteStreamPosition
    - rawspeed::BitStreamer::getInputPosition
    - auto::fill
    - auto::getFillLevel
    - std::move
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::getFillLevel
    - rawspeed::BitStreamer::BitStreamer
    - invariant
    - auto::skipBitsNoFill
    - auto::replenisher::markNumBytesAsConsumed
    linkageType: ''
    returnType: void
    signature: void reload()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:217,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:218,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:219,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:220,1
    - Dst: getInput
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:225,1
    - Dst: static_cast<Derived*>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:226,1
    - Dst: markNumBytesAsConsumed
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:227,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: rawspeed::BitStreamer::fill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 4
    functionsReached:
    - markNumBytesAsConsumed
    - rawspeed::BitStreamer::establishClassInvariants
    - invariant
    - getInput
    - static_cast<Derived*>
    linkageType: ''
    returnType: void
    signature: void fill(int nbits = Cache::MaxGetBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:233,1
    - Dst: getPos
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: rawspeed::BitStreamer::getInputPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 3
    functionsReached:
    - getPos
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void getInputPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:239,1
    - Dst: rawspeed::BitStreamer::getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: rawspeed::BitStreamer::getStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::getInputPosition
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: size_type
    signature: size_type getStreamPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:244,1
    - Dst: rawspeed::BitStreamer::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: rawspeed::BitStreamer::getRemainingSize
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::getRemainingSize
    linkageType: ''
    returnType: size_type
    signature: size_type getRemainingSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: rawspeed::BitStreamer::getFillLevel
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void getFillLevel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:254,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:255,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:256,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:257,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: rawspeed::BitStreamer::peekBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 2
    functionsReached:
    - peek
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void peekBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:262,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:263,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:265,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: rawspeed::BitStreamer::skipBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 3
    functionsReached:
    - skip
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    linkageType: ''
    returnType: void
    signature: void skipBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:270,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:271,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:272,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:273,1
    - Dst: rawspeed::BitStreamer::peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:274,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: rawspeed::BitStreamer::getBitsNoFill
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamer::peekBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::skipBitsNoFill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBitsNoFill(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:280,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:281,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:282,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:283,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:284,1
    - Dst: rawspeed::BitStreamer::peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: rawspeed::BitStreamer::peekBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::peekBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peekBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:289,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:290,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: rawspeed::BitStreamer::skipBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::skipBitsNoFill
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: void
    signature: void skipBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:295,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:296,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:297,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:298,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:299,1
    - Dst: rawspeed::BitStreamer::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: rawspeed::BitStreamer::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::getBitsNoFill
    - invariant
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBits(int nbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:306,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:310,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:311,1
    - Dst: rawspeed::BitStreamer::fill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:314,1
    - Dst: rawspeed::BitStreamer::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: rawspeed::BitStreamer::skipManyBits
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 1
    functionsReached:
    - rawspeed::BitStreamer::skipBitsNoFill
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::fill
    linkageType: ''
    returnType: void
    signature: void skipManyBits(int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamer::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:322,1
    - Dst: rawspeed::BitStreamer::skipManyBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: rawspeed::BitStreamer::skipBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitStreamer::establishClassInvariants
    - rawspeed::BitStreamer::skipManyBits
    linkageType: ''
    returnType: void
    signature: void skipBytes(int nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:55,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: rawspeed::BitStreamCacheBase::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 8
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void BitStreamCacheBase::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:61,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:62,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::push
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void push(uint64_t bits, int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:71,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:72,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:73,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:74,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:75,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:76,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:77,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: rawspeed::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - rawspeed::extractLowBits
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peek(int count) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:81,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:82,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:85,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: rawspeed::skip
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void skip(int count) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:94,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:95,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:97,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:98,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:102,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:103,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:104,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:105,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:109,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:110,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: rawspeed::push
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void push(uint64_t bits, int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:120,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:123,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:124,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:125,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:126,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: rawspeed::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::extractHighBits
    - rawspeed::implicit_cast
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: auto
    signature: auto peek(int count) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:132,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:133,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:136,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: rawspeed::skip
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void skip(int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:55,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: rawspeed::BitStreamCacheBase::establishClassInvariants
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 8
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void BitStreamCacheBase::establishClassInvariants() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:61,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:62,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::push
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void push(uint64_t bits, int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:71,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:72,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:73,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:74,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:75,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:76,1
    - Dst: rawspeed::extractLowBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:77,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: rawspeed::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - rawspeed::extractLowBits
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t peek(int count) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:81,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:82,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:85,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: rawspeed::skip
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void skip(int count) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:94,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:95,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:97,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:98,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:102,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:103,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:104,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:105,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:109,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:110,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: rawspeed::push
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void push(uint64_t bits, int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:120,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:123,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:124,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:125,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:126,1
    - Dst: rawspeed::extractHighBits
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: rawspeed::peek
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - rawspeed::extractHighBits
    - rawspeed::implicit_cast
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: auto
    signature: auto peek(int count) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:132,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:133,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:136,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: rawspeed::skip
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    functionUses: 0
    functionsReached:
    - establishClassInvariants
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void skip(int count) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::PosOrUnknown::PosOrUnknown
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PosOrUnknown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::PosOrUnknown::has_value
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:53,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:53,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:55,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - newValue
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: '& operator=(U newValue)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: PosOrUnknown
    signature: PosOrUnknown & operator=(U newValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PosOrUnknown::has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fallback
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rawspeed::PosOrUnknown::value_or
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - rawspeed::PosOrUnknown::has_value
    linkageType: ''
    returnType: T
    signature: T value_or(U fallback) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:110,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:111,1
    - Dst: std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:111,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:112,1
    - Dst: std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:113,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:113,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:116,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:120,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:121,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:121,1
    - Dst: auto::push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:122,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:139,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:140,1
    - Dst: std::to_integer<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:140,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:147,1
    - Dst: getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:156,1
    - Dst: getRemainingSize
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:177,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:178,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - inputStorage
    argTypes:
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 183
    functionName: rawspeed::BitStreamerJPEG::fillCache
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - push
    - std::to_integer<uint8_t>
    - getHostEndianness
    - input
    - getInputPosition
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::data
    - establishClassInvariants
    - implicit_cast<int>
    - bitwidth<typename StreamTraits::ChunkType>
    - auto::begin
    - getByteSwapped<typename StreamTraits::ChunkType>
    - auto::push
    - Array1DRef<std::byte>
    - invariant
    - getRemainingSize
    - std::accumulate
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::size
    - auto::size
    linkageType: ''
    returnType: BitStreamerJPEG::size_type
    signature: "BitStreamerJPEG::size_type BitStreamerJPEG::fillCache(\n    std::array<std::byte,
      BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>\n        inputStorage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:188,1
    - Dst: getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: rawspeed::BitStreamerJPEG::getStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - value_or
    - getInputPosition
    linkageType: ''
    returnType: BitStreamerJPEG::size_type
    signature: BitStreamerJPEG::size_type BitStreamerJPEG::getStreamPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::PosOrUnknown::PosOrUnknown
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PosOrUnknown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::PosOrUnknown::has_value
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:53,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:53,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:55,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - newValue
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: '& operator=(U newValue)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - invariant
    - has_value
    linkageType: ''
    returnType: PosOrUnknown
    signature: PosOrUnknown & operator=(U newValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PosOrUnknown::has_value
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fallback
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rawspeed::PosOrUnknown::value_or
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - rawspeed::PosOrUnknown::has_value
    linkageType: ''
    returnType: T
    signature: T value_or(U fallback) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:110,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:111,1
    - Dst: std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::data
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:111,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:112,1
    - Dst: std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:113,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:113,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:116,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:120,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:121,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:121,1
    - Dst: auto::push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:122,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:127,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:139,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:140,1
    - Dst: std::to_integer<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:140,1
    - Dst: input
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:147,1
    - Dst: getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:156,1
    - Dst: getRemainingSize
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:177,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:178,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - inputStorage
    argTypes:
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 183
    functionName: rawspeed::BitStreamerJPEG::fillCache
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - push
    - std::to_integer<uint8_t>
    - getHostEndianness
    - input
    - getInputPosition
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::data
    - establishClassInvariants
    - implicit_cast<int>
    - bitwidth<typename StreamTraits::ChunkType>
    - auto::begin
    - getByteSwapped<typename StreamTraits::ChunkType>
    - auto::push
    - Array1DRef<std::byte>
    - invariant
    - getRemainingSize
    - std::accumulate
    - std::array<std::byte, BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>::size
    - auto::size
    linkageType: ''
    returnType: BitStreamerJPEG::size_type
    signature: "BitStreamerJPEG::size_type BitStreamerJPEG::fillCache(\n    std::array<std::byte,
      BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes>\n        inputStorage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:188,1
    - Dst: getInputPosition
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: rawspeed::BitStreamerJPEG::getStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    functionUses: 0
    functionsReached:
    - value_or
    - getInputPosition
    linkageType: ''
    returnType: BitStreamerJPEG::size_type
    signature: BitStreamerJPEG::size_type BitStreamerJPEG::getStreamPosition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:48,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:49,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:50,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:52,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:54,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:55,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:60,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:68,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:70,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:71,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:72,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - BitStreamPosition<bo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: rawspeed::getAsByteStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    functionUses: 16
    functionsReached:
    - roundUpDivision
    - rawspeed::implicit_cast
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStreamPosition<bo>
    signature: ByteStreamPosition<bo> getAsByteStreamPosition(BitStreamPosition<bo>
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:48,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:49,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:50,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:52,1
    - Dst: roundUpDivision
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:54,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:55,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:60,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:68,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:70,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:71,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:72,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - BitStreamPosition<bo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: rawspeed::getAsByteStreamPosition
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    functionUses: 16
    functionsReached:
    - roundUpDivision
    - rawspeed::implicit_cast
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStreamPosition<bo>
    signature: ByteStreamPosition<bo> getAsByteStreamPosition(BitStreamPosition<bo>
      state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:52,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:53,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:56,1
    - Dst: implicit_cast<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:62,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:63,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:64,1
    - Dst: Array1DRef<const std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:66,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:66,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:74,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:81,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:82,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 92
    functionName: rawspeed::BitVacuumerJPEG::drainImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h
    functionUses: 0
    functionsReached:
    - skip
    - Array1DRef<const std::byte>
    - auto::end
    - getHostEndianness
    - Array1DRef
    - static_cast<uint8_t>
    - bitwidth<typename StreamTraits::ChunkType>
    - auto::begin
    - peek
    - getByteSwapped<typename StreamTraits::ChunkType>
    - implicit_cast<typename StreamTraits::ChunkType>
    - invariant
    - std::accumulate
    linkageType: ''
    returnType: void
    signature: void drainImpl()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:52,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:53,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:56,1
    - Dst: implicit_cast<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:62,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:63,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:64,1
    - Dst: Array1DRef<const std::byte>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:66,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:66,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:70,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:74,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:81,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:82,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 92
    functionName: rawspeed::BitVacuumerJPEG::drainImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h
    functionUses: 0
    functionsReached:
    - skip
    - Array1DRef<const std::byte>
    - auto::end
    - getHostEndianness
    - Array1DRef
    - static_cast<uint8_t>
    - bitwidth<typename StreamTraits::ChunkType>
    - auto::begin
    - peek
    - getByteSwapped<typename StreamTraits::ChunkType>
    - implicit_cast<typename StreamTraits::ChunkType>
    - invariant
    - std::accumulate
    linkageType: ''
    returnType: void
    signature: void drainImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:58,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:62,1
    - Dst: implicit_cast<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:69,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:70,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:71,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: rawspeed::BitVacuumer::drainImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - skip
    - bitwidth<typename StreamTraits::ChunkType>
    - getByteSwapped<typename StreamTraits::ChunkType>
    - peek
    - implicit_cast<typename StreamTraits::ChunkType>
    - invariant
    linkageType: ''
    returnType: void
    signature: void drainImpl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:81,1
    - Dst: static_cast<Derived*>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:86,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::BitVacuumer::drain
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - invariant
    - static_cast<Derived*>
    linkageType: ''
    returnType: void
    signature: void drain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:91,1
    - Dst: rawspeed::BitVacuumer::put
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:100,1
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: rawspeed::BitVacuumer::flush
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitVacuumer::put
    - rawspeed::BitVacuumer::drain
    - invariant
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(const BitVacuumer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(BitVacuumer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '& operator=(const BitVacuumer&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitVacuumer
    signature: BitVacuumer & operator=(const BitVacuumer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& operator=(BitVacuumer&&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitVacuumer
    signature: BitVacuumer & operator=(BitVacuumer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' output_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(U&& output_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: ~BitVacuumer()
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - flush
    linkageType: ''
    returnType: void
    signature: void ~BitVacuumer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:122,1
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:124,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: rawspeed::BitVacuumer::put
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 1
    functionsReached:
    - push
    - rawspeed::BitVacuumer::drain
    - invariant
    linkageType: ''
    returnType: void
    signature: void put(uint32_t bits, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:58,1
    - Dst: bitwidth<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:62,1
    - Dst: implicit_cast<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:69,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:70,1
    - Dst: getByteSwapped<typename StreamTraits::ChunkType>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:71,1
    - Dst: skip
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: rawspeed::BitVacuumer::drainImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - skip
    - bitwidth<typename StreamTraits::ChunkType>
    - getByteSwapped<typename StreamTraits::ChunkType>
    - peek
    - implicit_cast<typename StreamTraits::ChunkType>
    - invariant
    linkageType: ''
    returnType: void
    signature: void drainImpl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:81,1
    - Dst: static_cast<Derived*>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:86,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: rawspeed::BitVacuumer::drain
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 2
    functionsReached:
    - invariant
    - static_cast<Derived*>
    linkageType: ''
    returnType: void
    signature: void drain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:91,1
    - Dst: rawspeed::BitVacuumer::put
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:99,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:100,1
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:102,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: rawspeed::BitVacuumer::flush
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - rawspeed::BitVacuumer::put
    - rawspeed::BitVacuumer::drain
    - invariant
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(const BitVacuumer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(BitVacuumer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '& operator=(const BitVacuumer&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitVacuumer
    signature: BitVacuumer & operator=(const BitVacuumer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& operator=(BitVacuumer&&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BitVacuumer
    signature: BitVacuumer & operator=(BitVacuumer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<U>
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' output_'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: rawspeed::BitVacuumer::BitVacuumer
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - std::forward<U>
    linkageType: ''
    returnType: void
    signature: void BitVacuumer(U&& output_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: ~BitVacuumer()
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 0
    functionsReached:
    - flush
    linkageType: ''
    returnType: void
    signature: void ~BitVacuumer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:122,1
    - Dst: rawspeed::BitVacuumer::drain
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:124,1
    - Dst: push
      Src: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bits
    - count
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: rawspeed::BitVacuumer::put
    functionSourceFile: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
    functionUses: 2
    functionsReached:
    - push
    - rawspeed::BitVacuumer::drain
    - invariant
    linkageType: ''
    returnType: void
    signature: void put(uint32_t bits, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: rawspeed::CiffEntry::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: rawspeed::CiffEntry::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getData() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:47,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:49,1
    - Dst: rawspeed::CiffEntry::Create
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:51,1
    - Dst: rawspeed::CiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:56,1
    - Dst: std::make_unique<CiffIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:56,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:62,1
    - Dst: rawspeed::CiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:64,1
    - Dst: std::make_unique<CiffEntry>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - valueDatas
    - valueData
    - ' dirEntries'
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    - ByteStream
    assertStmts:
    - condition: (valueDatas)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: rawspeed::CiffIFD::parseIFDEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - isIn
    - rawspeed::CiffIFD::add
    - rawspeed::CiffEntry::Create
    - std::make_unique<CiffIFD>
    - assert
    - std::make_unique<CiffEntry>
    - getStream
    linkageType: ''
    returnType: void
    signature: "void CiffIFD::parseIFDEntry(NORangesSet<Buffer>* valueDatas,\n                            ByteStream
      valueData, ByteStream& dirEntries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CiffIFD::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:69,1
    - Dst: rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent_
    argTypes:
    - CiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::CiffIFD::CiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
    - rawspeed::CiffIFD::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void CiffIFD::CiffIFD(CiffIFD* const parent_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:78,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:79,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:81,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:81,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:82,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:85,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:86,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:89,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:92,1
    - Dst: rawspeed::CiffIFD::parseIFDEntry
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:102,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:104,1
    - Dst: NORangesSet::size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:104,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: decltype(mSubIFD)::size_type
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - parent_
    - directory
    argTypes:
    - CiffIFD*
    - ByteStream
    assertStmts:
    - condition: (valueDatas.size() <= entryCount)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mSubIFD.size() == decltype(mSubIFD)::size_type(subIFDCount))
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() + mSubIFD.size() <= entryCount)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (subIFDCount <= subIFDCountRecursive)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() <= CiffTagsWeCareAbout.size())
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 109
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 109
    functionName: rawspeed::CiffIFD::CiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - decltype(mSubIFD)::size_type
    - ByteStream::getStream
    - size
    - ByteStream::setPosition
    - NORangesSet::size
    - ThrowCPE
    - rawspeed::CiffIFD::parseIFDEntry
    - assert
    - ByteStream::getSize
    linkageType: ''
    returnType: void
    signature: void CiffIFD::CiffIFD(CiffIFD* const parent_, ByteStream directory)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffIFD::recursivelyIncrementSubIFDCount()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:125,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:127,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:131,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (count <= CiffIFD::Limits::SubIFDCount)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (count <= CiffIFD::Limits::RecursiveSubIFDCount)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: rawspeed::CiffIFD::checkSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void CiffIFD::checkSubIFDs(int headroom) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:140,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:142,1
    - Dst: CiffIFD*::checkSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (depth <= CiffIFD::Limits::Depth)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: rawspeed::CiffIFD::recursivelyCheckSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - assert
    - CiffIFD*::checkSubIFDs
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void CiffIFD::recursivelyCheckSubIFDs(int headroom) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:153,1
    - Dst: std::unique_ptr<CiffIFD>::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:156,1
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:158,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - subIFD
    argTypes:
    - std::unique_ptr<CiffIFD>
    assertStmts:
    - condition: (subIFD->parent == this)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: rawspeed::CiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - assert
    - push_back
    - std::move
    - std::unique_ptr<CiffIFD>::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void CiffIFD::add(std::unique_ptr<CiffIFD> subIFD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:162,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:162,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:163,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - std::unique_ptr<CiffEntry>
    assertStmts:
    - condition: (isIn(entry->tag, CiffTagsWeCareAbout))
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() <= CiffTagsWeCareAbout.size())
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: rawspeed::CiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - size
    - assert
    - std::move
    - isIn
    linkageType: ''
    returnType: void
    signature: void CiffIFD::add(std::unique_ptr<CiffEntry> entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:170,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:170,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:174,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:174,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:175,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:176,1
    - Dst: std::vector::push_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:177,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:181,1
    - Dst: std::vector::insert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tag
    - ' f'
    argTypes:
    - CiffTag
    - Lambda
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: rawspeed::CiffIFD::getIFDsWithTagIf
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - auto::end
    - find
    - std::vector::insert
    - isIn
    - end
    - auto::begin
    - f
    - assert
    - std::vector::end
    - auto::second::get
    - std::vector::push_back
    - rawspeed::CiffIFD::getIFDsWithTagIf
    linkageType: ''
    returnType: std::vector<const CiffIFD*>
    signature: "std::vector<const CiffIFD*> CiffIFD::getIFDsWithTagIf(CiffTag tag,\n
      \                                                     const Lambda& f) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:191,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:191,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:193,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:193,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:194,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:195,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - tag
    - ' f'
    argTypes:
    - CiffTag
    - Lambda
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: rawspeed::CiffIFD::getEntryRecursiveIf
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - find
    - isIn
    - end
    - f
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - auto::second::get
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry * CiffIFD::getEntryRecursiveIf(CiffTag tag,\n                                              const
      Lambda& f) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:209,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:209,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: rawspeed::CiffIFD::getIFDsWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::CiffIFD::getIFDsWithTagIf
    - isIn
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: vector<const CiffIFD*> CiffIFD::getIFDsWithTag(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:216,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:216,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:217,1
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:218,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - isValue
    argTypes:
    - CiffTag
    - uint32_t
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: rawspeed::CiffIFD::getIFDsWithTagWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - isIn
    - rawspeed::CiffIFD::getIFDsWithTagIf
    - assert
    - isInt
    - getU32
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: "vector<const CiffIFD*> CiffIFD::getIFDsWithTagWhere(CiffTag tag,\n
      \                                                   uint32_t isValue) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:224,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:224,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:225,1
    - Dst: isString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:226,1
    - Dst: getString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - ' isValue'
    argTypes:
    - CiffTag
    - std::string
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: rawspeed::CiffIFD::getIFDsWithTagWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - getString
    - isString
    - isIn
    - assert
    - rawspeed::CiffIFD::getIFDsWithTagIf
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: vector<const CiffIFD*> CiffIFD::getIFDsWithTagWhere(CiffTag tag, const
      std::string& isValue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:231,1
    - Dst: rawspeed::RAWSPEED_READONLY::isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:231,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: rawspeed::RAWSPEED_READONLY::hasEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - contains
    - assert
    - rawspeed::RAWSPEED_READONLY::isIn
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffIFD::hasEntry(CiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:237,1
    - Dst: rawspeed::RAWSPEED_READONLY::isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:237,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:239,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: rawspeed::RAWSPEED_READONLY::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: rawspeed::RAWSPEED_READONLY::hasEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - contains
    - end
    - begin
    - std::any_of
    - assert
    - rawspeed::RAWSPEED_READONLY::isIn
    - rawspeed::RAWSPEED_READONLY::hasEntryRecursive
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffIFD::hasEntryRecursive(CiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:249,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:249,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:251,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:251,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:252,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:254,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: rawspeed::CiffIFD::getEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - find
    - isIn
    - end
    - ThrowCPE
    - assert
    - auto::second::get
    - static_cast<unsigned>
    linkageType: ''
    returnType: CiffEntry
    signature: CiffEntry * CiffIFD::getEntry(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:258,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:258,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: rawspeed::CiffIFD::getEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - isIn
    linkageType: ''
    returnType: CiffEntry
    signature: CiffEntry * CiffIFD::getEntryRecursive(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:265,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:265,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:266,1
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:267,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - isValue
    argTypes:
    - CiffTag
    - uint32_t
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: rawspeed::CiffIFD::getEntryRecursiveWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - isIn
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - isInt
    - getU32
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry * CiffIFD::getEntryRecursiveWhere(CiffTag tag,\n                                                 uint32_t
      isValue) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:273,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:273,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:274,1
    - Dst: isString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:275,1
    - Dst: getString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - ' isValue'
    argTypes:
    - CiffTag
    - std::string
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: rawspeed::CiffIFD::getEntryRecursiveWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - getString
    - isString
    - isIn
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    linkageType: ''
    returnType: CiffEntry
    signature: 'CiffEntry *

      CiffIFD::getEntryRecursiveWhere(CiffTag tag, const std::string& isValue) const'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:47,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:49,1
    - Dst: rawspeed::CiffEntry::Create
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:51,1
    - Dst: rawspeed::CiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:56,1
    - Dst: std::make_unique<CiffIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:56,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:62,1
    - Dst: rawspeed::CiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:64,1
    - Dst: std::make_unique<CiffEntry>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - valueDatas
    - valueData
    - ' dirEntries'
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    - ByteStream
    assertStmts:
    - condition: (valueDatas)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: rawspeed::CiffIFD::parseIFDEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 1
    functionsReached:
    - isIn
    - rawspeed::CiffIFD::add
    - rawspeed::CiffEntry::Create
    - std::make_unique<CiffIFD>
    - assert
    - std::make_unique<CiffEntry>
    - getStream
    linkageType: ''
    returnType: void
    signature: "void CiffIFD::parseIFDEntry(NORangesSet<Buffer>* valueDatas,\n                            ByteStream
      valueData, ByteStream& dirEntries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::CiffIFD::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:69,1
    - Dst: rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent_
    argTypes:
    - CiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::CiffIFD::CiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
    - rawspeed::CiffIFD::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void CiffIFD::CiffIFD(CiffIFD* const parent_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:78,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:79,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:81,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:81,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:82,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:85,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:86,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:89,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:92,1
    - Dst: rawspeed::CiffIFD::parseIFDEntry
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:102,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:104,1
    - Dst: NORangesSet::size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:104,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:105,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: decltype(mSubIFD)::size_type
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:106,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - parent_
    - directory
    argTypes:
    - CiffIFD*
    - ByteStream
    assertStmts:
    - condition: (valueDatas.size() <= entryCount)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mSubIFD.size() == decltype(mSubIFD)::size_type(subIFDCount))
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() + mSubIFD.size() <= entryCount)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (subIFDCount <= subIFDCountRecursive)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() <= CiffTagsWeCareAbout.size())
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 109
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 109
    functionName: rawspeed::CiffIFD::CiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - decltype(mSubIFD)::size_type
    - ByteStream::getStream
    - size
    - ByteStream::setPosition
    - NORangesSet::size
    - ThrowCPE
    - rawspeed::CiffIFD::parseIFDEntry
    - assert
    - ByteStream::getSize
    linkageType: ''
    returnType: void
    signature: void CiffIFD::CiffIFD(CiffIFD* const parent_, ByteStream directory)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CiffIFD::recursivelyIncrementSubIFDCount()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:125,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:127,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:131,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (count <= CiffIFD::Limits::SubIFDCount)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (count <= CiffIFD::Limits::RecursiveSubIFDCount)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: rawspeed::CiffIFD::checkSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void CiffIFD::checkSubIFDs(int headroom) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:140,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:142,1
    - Dst: CiffIFD*::checkSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (depth <= CiffIFD::Limits::Depth)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: rawspeed::CiffIFD::recursivelyCheckSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 2
    functionsReached:
    - assert
    - CiffIFD*::checkSubIFDs
    - ThrowCPE
    linkageType: ''
    returnType: void
    signature: void CiffIFD::recursivelyCheckSubIFDs(int headroom) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:153,1
    - Dst: std::unique_ptr<CiffIFD>::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:156,1
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:158,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - subIFD
    argTypes:
    - std::unique_ptr<CiffIFD>
    assertStmts:
    - condition: (subIFD->parent == this)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: rawspeed::CiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 2
    functionsReached:
    - assert
    - push_back
    - std::move
    - std::unique_ptr<CiffIFD>::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void CiffIFD::add(std::unique_ptr<CiffIFD> subIFD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:162,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:162,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:163,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - std::unique_ptr<CiffEntry>
    assertStmts:
    - condition: (isIn(entry->tag, CiffTagsWeCareAbout))
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    - condition: (mEntry.size() <= CiffTagsWeCareAbout.size())
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: rawspeed::CiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 2
    functionsReached:
    - size
    - assert
    - std::move
    - isIn
    linkageType: ''
    returnType: void
    signature: void CiffIFD::add(std::unique_ptr<CiffEntry> entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:170,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:170,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:174,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:174,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:175,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:176,1
    - Dst: std::vector::push_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:177,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:181,1
    - Dst: std::vector::insert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tag
    - ' f'
    argTypes:
    - CiffTag
    - Lambda
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: rawspeed::CiffIFD::getIFDsWithTagIf
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 5
    functionsReached:
    - auto::end
    - find
    - std::vector::insert
    - isIn
    - end
    - auto::begin
    - f
    - assert
    - std::vector::end
    - auto::second::get
    - std::vector::push_back
    - rawspeed::CiffIFD::getIFDsWithTagIf
    linkageType: ''
    returnType: std::vector<const CiffIFD*>
    signature: "std::vector<const CiffIFD*> CiffIFD::getIFDsWithTagIf(CiffTag tag,\n
      \                                                     const Lambda& f) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:191,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:191,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:193,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:193,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:194,1
    - Dst: f
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:195,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - tag
    - ' f'
    argTypes:
    - CiffTag
    - Lambda
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: rawspeed::CiffIFD::getEntryRecursiveIf
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 5
    functionsReached:
    - find
    - isIn
    - end
    - f
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - auto::second::get
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry * CiffIFD::getEntryRecursiveIf(CiffTag tag,\n                                              const
      Lambda& f) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:209,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:209,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: rawspeed::CiffIFD::getIFDsWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::CiffIFD::getIFDsWithTagIf
    - isIn
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: vector<const CiffIFD*> CiffIFD::getIFDsWithTag(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:216,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:216,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:217,1
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:218,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - isValue
    argTypes:
    - CiffTag
    - uint32_t
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: rawspeed::CiffIFD::getIFDsWithTagWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - isIn
    - rawspeed::CiffIFD::getIFDsWithTagIf
    - assert
    - isInt
    - getU32
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: "vector<const CiffIFD*> CiffIFD::getIFDsWithTagWhere(CiffTag tag,\n
      \                                                   uint32_t isValue) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:224,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:224,1
    - Dst: rawspeed::CiffIFD::getIFDsWithTagIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:225,1
    - Dst: isString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:226,1
    - Dst: getString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - ' isValue'
    argTypes:
    - CiffTag
    - std::string
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: rawspeed::CiffIFD::getIFDsWithTagWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - getString
    - isString
    - isIn
    - assert
    - rawspeed::CiffIFD::getIFDsWithTagIf
    linkageType: ''
    returnType: vector<const CiffIFD*>
    signature: vector<const CiffIFD*> CiffIFD::getIFDsWithTagWhere(CiffTag tag, const
      std::string& isValue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:231,1
    - Dst: rawspeed::RAWSPEED_READONLY::isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:231,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: rawspeed::RAWSPEED_READONLY::hasEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - contains
    - assert
    - rawspeed::RAWSPEED_READONLY::isIn
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffIFD::hasEntry(CiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:237,1
    - Dst: rawspeed::RAWSPEED_READONLY::isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:237,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:239,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:242,1
    - Dst: rawspeed::RAWSPEED_READONLY::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: rawspeed::RAWSPEED_READONLY::hasEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 2
    functionsReached:
    - contains
    - end
    - begin
    - std::any_of
    - assert
    - rawspeed::RAWSPEED_READONLY::isIn
    - rawspeed::RAWSPEED_READONLY::hasEntryRecursive
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffIFD::hasEntryRecursive(CiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:249,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:249,1
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:251,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:251,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:252,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:254,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: rawspeed::CiffIFD::getEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - find
    - isIn
    - end
    - ThrowCPE
    - assert
    - auto::second::get
    - static_cast<unsigned>
    linkageType: ''
    returnType: CiffEntry
    signature: CiffEntry * CiffIFD::getEntry(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:258,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:258,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - CiffTag
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: rawspeed::CiffIFD::getEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - isIn
    linkageType: ''
    returnType: CiffEntry
    signature: CiffEntry * CiffIFD::getEntryRecursive(CiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:265,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:265,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:266,1
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:267,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - isValue
    argTypes:
    - CiffTag
    - uint32_t
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: rawspeed::CiffIFD::getEntryRecursiveWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - isIn
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    - isInt
    - getU32
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry * CiffIFD::getEntryRecursiveWhere(CiffTag tag,\n                                                 uint32_t
      isValue) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:273,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:273,1
    - Dst: rawspeed::CiffIFD::getEntryRecursiveIf
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:274,1
    - Dst: isString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:275,1
    - Dst: getString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - ' isValue'
    argTypes:
    - CiffTag
    - std::string
    assertStmts:
    - condition: (isIn(tag, CiffTagsWeCareAbout))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: rawspeed::CiffIFD::getEntryRecursiveWhere
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
    functionUses: 0
    functionsReached:
    - getString
    - isString
    - isIn
    - assert
    - rawspeed::CiffIFD::getEntryRecursiveIf
    linkageType: ''
    returnType: CiffEntry
    signature: 'CiffEntry *

      CiffIFD::getEntryRecursiveWhere(CiffTag tag, const std::string& isValue) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed::TiffIFD::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD::anchor() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:54,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:58,1
    - Dst: std::make_unique<TiffEntry>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:61,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:65,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:79,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:79,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: rawspeed::TiffIFD::parseMakerNote
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: TiffEntryOwner::get
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: TiffEntryOwner::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:95,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:95,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:99,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ifds
    - ' bs'
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 101
    functionName: rawspeed::TiffIFD::parseIFDEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffIFD::add
    - setPosition
    - std::move
    - assert
    - TiffEntryOwner::getU32
    - TiffEntryOwner::get
    - std::make_unique<TiffEntry>
    - rawspeed::TiffIFD::parseMakerNote
    - getPosition
    - std::make_unique<TiffIFD>
    linkageType: ''
    returnType: void
    signature: void TiffIFD::parseIFDEntry(NORangesSet<Buffer>* ifds, ByteStream&
      bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffIFD::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:104,1
    - Dst: rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent_
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
    - rawspeed::TiffIFD::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void TiffIFD::TiffIFD(TiffIFD* parent_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:119,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:122,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:125,1
    - Dst: DataBuffer::getSubView
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:131,1
    - Dst: NORangesSet<Buffer>*::insert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:132,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:133,1
    - Dst: rawspeed::TiffIFD::parseIFDEntry
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:136,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - parent_
    - ifds
    - data
    - offset
    argTypes:
    - TiffIFD*
    - NORangesSet<Buffer>*
    - DataBuffer
    - uint32_t
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - ByteStream::setPosition
    - ThrowTPE
    - NORangesSet<Buffer>*::insert
    - assert
    - rawspeed::TiffIFD::parseIFDEntry
    - DataBuffer::getSubView
    linkageType: ''
    returnType: void
    signature: "void TiffIFD::TiffIFD(TiffIFD* parent_, NORangesSet<Buffer>* ifds,
      DataBuffer data,\n                 uint32_t offset)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:144,1
    - Dst: TiffIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:152,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:156,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:156,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:158,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:172,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:172,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:173,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:176,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:176,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:177,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:178,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:179,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:180,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:180,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:181,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:182,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:183,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:183,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:187,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:188,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:189,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:190,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:191,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:192,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:193,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:194,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:195,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:196,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:197,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:198,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:199,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:204,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:208,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:215,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:216,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:217,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:218,1
    - Dst: std::make_unique<TiffRootIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:223,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:223,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - ifds
    - t
    argTypes:
    - NORangesSet<Buffer>*
    - TiffEntry*
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 224
    functionName: rawspeed::TiffIFD::parseMakerNote
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - getTiffByteOrder
    - ByteStream::hasPrefix
    - std::string_view
    - ByteStream::getPosition
    - setup
    - ByteStream::skipPrefix
    - ByteStream::hasPatternAt
    - std::make_unique<TiffRootIFD>
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - assert
    - TiffEntry*::getData
    - trimSpaces
    - TiffEntry*::getString
    - TiffIFD*::getEntryRecursive
    - ByteStream::getSubStream
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: TiffRootIFDOwner
    signature: "TiffRootIFDOwner TiffIFD::parseMakerNote(NORangesSet<Buffer>* ifds,\n
      \                                        const TiffEntry* t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:228,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:229,1
    - Dst: rawspeed::TiffIFD::getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:232,1
    - Dst: vector::insert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: rawspeed::TiffIFD::getIFDsWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - contains
    - vector::end
    - vector::begin
    - vector::insert
    - rawspeed::TiffIFD::getIFDsWithTag
    - vector::push_back
    linkageType: ''
    returnType: std::vector<const TiffIFD*>
    signature: std::vector<const TiffIFD*> TiffIFD::getIFDsWithTag(TiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffIFD::getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:239,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:240,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:241,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tag
    - index
    argTypes:
    - TiffTag
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: rawspeed::TiffIFD::getIFDWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - auto::size
    - rawspeed::TiffIFD::getIFDsWithTag
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * TiffIFD::getIFDWithTag(TiffTag tag, uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD::recursivelyIncrementSubIFDCount()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:272,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:274,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:278,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (count <= TiffIFD::Limits::SubIFDCount)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    - condition: (count <= TiffIFD::Limits::RecursiveSubIFDCount)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: rawspeed::TiffIFD::checkSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TiffIFD::checkSubIFDs(int headroom) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:287,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:289,1
    - Dst: TiffIFD*::checkSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (depth <= TiffIFD::Limits::Depth)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: rawspeed::TiffIFD::recursivelyCheckSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - ThrowTPE
    - assert
    - TiffIFD*::checkSubIFDs
    linkageType: ''
    returnType: void
    signature: void TiffIFD::recursivelyCheckSubIFDs(int headroom) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:300,1
    - Dst: TiffIFDOwner::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:303,1
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:305,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - subIFD
    argTypes:
    - TiffIFDOwner
    assertStmts:
    - condition: (subIFD->parent == this)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: rawspeed::TiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - assert
    - push_back
    - TiffIFDOwner::recursivelyCheckSubIFDs
    - std::move
    linkageType: ''
    returnType: void
    signature: void TiffIFD::add(TiffIFDOwner subIFD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - TiffEntryOwner
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: rawspeed::TiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TiffIFD::add(TiffEntryOwner entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:314,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:315,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:316,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:316,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: rawspeed::TiffIFD::getEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - find
    - ThrowTPE
    - end
    - auto::second::get
    - static_cast<unsigned>
    linkageType: ''
    returnType: TiffEntry
    signature: TiffEntry * TiffIFD::getEntry(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: rawspeed::TiffRootIFD::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffRootIFD::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:327,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:328,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:331,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:333,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:335,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:335,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:336,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: rawspeed::TiffRootIFD::getID
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - getEntryRecursive
    - auto*::getString
    - trimSpaces
    linkageType: ''
    returnType: TiffID
    signature: TiffID TiffRootIFD::getID() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed::TiffIFD::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD::anchor() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:54,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:58,1
    - Dst: std::make_unique<TiffEntry>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:61,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:65,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:79,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:79,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: rawspeed::TiffIFD::parseMakerNote
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: TiffEntryOwner::get
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:84,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: std::make_unique<TiffIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: TiffEntryOwner::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:91,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:95,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:95,1
    - Dst: rawspeed::TiffIFD::add
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:99,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ifds
    - ' bs'
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 101
    functionName: rawspeed::TiffIFD::parseIFDEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::TiffIFD::add
    - setPosition
    - std::move
    - assert
    - TiffEntryOwner::getU32
    - TiffEntryOwner::get
    - std::make_unique<TiffEntry>
    - rawspeed::TiffIFD::parseMakerNote
    - getPosition
    - std::make_unique<TiffIFD>
    linkageType: ''
    returnType: void
    signature: void TiffIFD::parseIFDEntry(NORangesSet<Buffer>* ifds, ByteStream&
      bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffIFD::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:104,1
    - Dst: rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent_
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
    - rawspeed::TiffIFD::recursivelyCheckSubIFDs
    linkageType: ''
    returnType: void
    signature: void TiffIFD::TiffIFD(TiffIFD* parent_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:119,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:122,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:125,1
    - Dst: DataBuffer::getSubView
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:131,1
    - Dst: NORangesSet<Buffer>*::insert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:132,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:133,1
    - Dst: rawspeed::TiffIFD::parseIFDEntry
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:136,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - parent_
    - ifds
    - data
    - offset
    argTypes:
    - TiffIFD*
    - NORangesSet<Buffer>*
    - DataBuffer
    - uint32_t
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - ByteStream::setPosition
    - ThrowTPE
    - NORangesSet<Buffer>*::insert
    - assert
    - rawspeed::TiffIFD::parseIFDEntry
    - DataBuffer::getSubView
    linkageType: ''
    returnType: void
    signature: "void TiffIFD::TiffIFD(TiffIFD* parent_, NORangesSet<Buffer>* ifds,
      DataBuffer data,\n                 uint32_t offset)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:144,1
    - Dst: TiffIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:152,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:156,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:156,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:158,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:170,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:172,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:172,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:173,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:176,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:176,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:177,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:178,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:179,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:180,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:180,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:181,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:182,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:183,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:183,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:187,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:188,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:189,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:190,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:191,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:192,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:193,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:194,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:195,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:196,1
    - Dst: ByteStream::hasPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:197,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:198,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:199,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:204,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:208,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:215,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:216,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:217,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:218,1
    - Dst: std::make_unique<TiffRootIFD>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:223,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:223,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - ifds
    - t
    argTypes:
    - NORangesSet<Buffer>*
    - TiffEntry*
    assertStmts:
    - condition: (ifds)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 224
    functionName: rawspeed::TiffIFD::parseMakerNote
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 2
    functionsReached:
    - getTiffByteOrder
    - ByteStream::hasPrefix
    - std::string_view
    - ByteStream::getPosition
    - setup
    - ByteStream::skipPrefix
    - ByteStream::hasPatternAt
    - std::make_unique<TiffRootIFD>
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - assert
    - TiffEntry*::getData
    - trimSpaces
    - TiffEntry*::getString
    - TiffIFD*::getEntryRecursive
    - ByteStream::getSubStream
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: TiffRootIFDOwner
    signature: "TiffRootIFDOwner TiffIFD::parseMakerNote(NORangesSet<Buffer>* ifds,\n
      \                                        const TiffEntry* t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:228,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:229,1
    - Dst: rawspeed::TiffIFD::getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:232,1
    - Dst: vector::insert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    - Dst: vector::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: rawspeed::TiffIFD::getIFDsWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 3
    functionsReached:
    - contains
    - vector::end
    - vector::begin
    - vector::insert
    - rawspeed::TiffIFD::getIFDsWithTag
    - vector::push_back
    linkageType: ''
    returnType: std::vector<const TiffIFD*>
    signature: std::vector<const TiffIFD*> TiffIFD::getIFDsWithTag(TiffTag tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffIFD::getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:239,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:240,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:241,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tag
    - index
    argTypes:
    - TiffTag
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: rawspeed::TiffIFD::getIFDWithTag
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - auto::size
    - rawspeed::TiffIFD::getIFDsWithTag
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * TiffIFD::getIFDWithTag(TiffTag tag, uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD::recursivelyIncrementSubIFDCount()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:272,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:274,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:278,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (count <= TiffIFD::Limits::SubIFDCount)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    - condition: (count <= TiffIFD::Limits::RecursiveSubIFDCount)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: rawspeed::TiffIFD::checkSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - assert
    linkageType: ''
    returnType: void
    signature: void TiffIFD::checkSubIFDs(int headroom) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:287,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:289,1
    - Dst: TiffIFD*::checkSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - headroom
    argTypes:
    - int
    assertStmts:
    - condition: (depth <= TiffIFD::Limits::Depth)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: rawspeed::TiffIFD::recursivelyCheckSubIFDs
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 2
    functionsReached:
    - ThrowTPE
    - assert
    - TiffIFD*::checkSubIFDs
    linkageType: ''
    returnType: void
    signature: void TiffIFD::recursivelyCheckSubIFDs(int headroom) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:300,1
    - Dst: TiffIFDOwner::recursivelyCheckSubIFDs
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:303,1
    - Dst: push_back
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:305,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - subIFD
    argTypes:
    - TiffIFDOwner
    assertStmts:
    - condition: (subIFD->parent == this)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: rawspeed::TiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 2
    functionsReached:
    - assert
    - push_back
    - TiffIFDOwner::recursivelyCheckSubIFDs
    - std::move
    linkageType: ''
    returnType: void
    signature: void TiffIFD::add(TiffIFDOwner subIFD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - TiffEntryOwner
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: rawspeed::TiffIFD::add
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TiffIFD::add(TiffEntryOwner entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:314,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:315,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:316,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:316,1
    - Dst: auto::second::get
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: rawspeed::TiffIFD::getEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - find
    - ThrowTPE
    - end
    - auto::second::get
    - static_cast<unsigned>
    linkageType: ''
    returnType: TiffEntry
    signature: TiffEntry * TiffIFD::getEntry(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: rawspeed::TiffRootIFD::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffRootIFD::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:327,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:328,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:331,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:333,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:335,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:335,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:336,1
    - Dst: auto*::getString
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: rawspeed::TiffRootIFD::getID
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - getEntryRecursive
    - auto*::getString
    - trimSpaces
    linkageType: ''
    returnType: TiffID
    signature: TiffID TiffRootIFD::getID() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - data_
    - tag_
    - type_
    - count_
    argTypes:
    - ByteStream
    - CiffTag
    - CiffDataType
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: rawspeed::CiffEntry::CiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CiffEntry::CiffEntry(ByteStream data_, CiffTag tag_, CiffDataType
      type_,\n                     uint32_t count_)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:47,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:49,1
    - Dst: static_cast<CiffDataType>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:51,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:61,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:62,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:63,1
    - Dst: NORangesSet<Buffer>*::insert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:64,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:65,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:69,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:72,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:77,1
    - Dst: Optional::has_value
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:77,1
    - Dst: rawspeed::CiffEntry::getElementShift
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - valueDatas
    - valueData
    - dirEntry
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: rawspeed::CiffEntry::Create
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU16
    - rawspeed::CiffEntry::getElementShift
    - ByteStream::getU32
    - ByteStream::getStream
    - ByteStream::getPosition
    - static_cast<CiffDataType>
    - NORangesSet<Buffer>*::insert
    - ThrowCPE
    - static_cast<CiffTag>
    - invariant
    - Optional::has_value
    - ByteStream::getSubStream
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry CiffEntry::Create(NORangesSet<Buffer>* valueDatas,\n                            ByteStream
      valueData, ByteStream dirEntry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - type
    argTypes:
    - CiffDataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: rawspeed::CiffEntry::getElementShift
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t CiffEntry::getElementShift(CiffDataType type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: rawspeed::RAWSPEED_READONLY::getElementSize
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RAWSPEED_READONLY CiffEntry::getElementSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: rawspeed::RAWSPEED_READONLY::isInt
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffEntry::isInt() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:124,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:125,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:127,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:127,1
    - Dst: rawspeed::CiffEntry::getByte
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:131,1
    - Dst: rawspeed::CiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:133,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: rawspeed::CiffEntry::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CiffEntry::getU16
    - peek
    - ThrowCPE
    - rawspeed::CiffEntry::getByte
    - isInt
    - static_cast<unsigned>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t CiffEntry::getU32(uint32_t num) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:140,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:141,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:141,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: rawspeed::CiffEntry::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    - peek
    - ThrowCPE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t CiffEntry::getU16(uint32_t num) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:148,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:149,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:149,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: rawspeed::CiffEntry::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    - peek
    - ThrowCPE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t CiffEntry::getByte(uint32_t num) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:156,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:157,1
    - Dst: peekString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: rawspeed::CiffEntry::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - peekString
    - static_cast<unsigned>
    - ThrowCPE
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view CiffEntry::getString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:167,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:168,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:170,1
    - Dst: peekData
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:170,1
    - Dst: vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: rawspeed::CiffEntry::getStrings
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - vector::emplace_back
    - reinterpret_cast<const char*>
    - peekData
    - ThrowCPE
    - static_cast<unsigned>
    linkageType: ''
    returnType: vector<std::string>
    signature: vector<std::string> CiffEntry::getStrings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed::RAWSPEED_READONLY::isString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffEntry::isString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - data_
    - tag_
    - type_
    - count_
    argTypes:
    - ByteStream
    - CiffTag
    - CiffDataType
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: rawspeed::CiffEntry::CiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CiffEntry::CiffEntry(ByteStream data_, CiffTag tag_, CiffDataType
      type_,\n                     uint32_t count_)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:47,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:49,1
    - Dst: static_cast<CiffDataType>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:51,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:61,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:62,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:63,1
    - Dst: NORangesSet<Buffer>*::insert
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:64,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:65,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:69,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:72,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:77,1
    - Dst: Optional::has_value
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:77,1
    - Dst: rawspeed::CiffEntry::getElementShift
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - valueDatas
    - valueData
    - dirEntry
    argTypes:
    - NORangesSet<Buffer>*
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: rawspeed::CiffEntry::Create
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU16
    - rawspeed::CiffEntry::getElementShift
    - ByteStream::getU32
    - ByteStream::getStream
    - ByteStream::getPosition
    - static_cast<CiffDataType>
    - NORangesSet<Buffer>*::insert
    - ThrowCPE
    - static_cast<CiffTag>
    - invariant
    - Optional::has_value
    - ByteStream::getSubStream
    linkageType: ''
    returnType: CiffEntry
    signature: "CiffEntry CiffEntry::Create(NORangesSet<Buffer>* valueDatas,\n                            ByteStream
      valueData, ByteStream dirEntry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - type
    argTypes:
    - CiffDataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: rawspeed::CiffEntry::getElementShift
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t CiffEntry::getElementShift(CiffDataType type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: rawspeed::RAWSPEED_READONLY::getElementSize
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RAWSPEED_READONLY CiffEntry::getElementSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: rawspeed::RAWSPEED_READONLY::isInt
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffEntry::isInt() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isInt
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:124,1
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:125,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:127,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:127,1
    - Dst: rawspeed::CiffEntry::getByte
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:131,1
    - Dst: rawspeed::CiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:133,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: rawspeed::CiffEntry::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CiffEntry::getU16
    - peek
    - ThrowCPE
    - rawspeed::CiffEntry::getByte
    - isInt
    - static_cast<unsigned>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t CiffEntry::getU32(uint32_t num) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:140,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:141,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:141,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: rawspeed::CiffEntry::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 2
    functionsReached:
    - static_cast<unsigned>
    - peek
    - ThrowCPE
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t CiffEntry::getU16(uint32_t num) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:148,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:149,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:149,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: rawspeed::CiffEntry::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 2
    functionsReached:
    - static_cast<unsigned>
    - peek
    - ThrowCPE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t CiffEntry::getByte(uint32_t num) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:156,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:157,1
    - Dst: peekString
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: rawspeed::CiffEntry::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - peekString
    - static_cast<unsigned>
    - ThrowCPE
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view CiffEntry::getString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowCPE
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:167,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:168,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:170,1
    - Dst: peekData
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:170,1
    - Dst: vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: rawspeed::CiffEntry::getStrings
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached:
    - vector::emplace_back
    - reinterpret_cast<const char*>
    - peekData
    - ThrowCPE
    - static_cast<unsigned>
    linkageType: ''
    returnType: vector<std::string>
    signature: vector<std::string> CiffEntry::getStrings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: rawspeed::RAWSPEED_READONLY::isString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY CiffEntry::isString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rawspeed::TiffEntry::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntry::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::TiffEntryWithData::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntryWithData::anchor() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:58,1
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:58,1
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:59,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:60,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:61,1
    - Dst: static_cast<TiffDataType>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:63,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:64,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:68,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:74,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:75,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:75,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:76,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:78,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:80,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:86,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:94,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:95,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - parent_
    - ' bs'
    argTypes:
    - TiffIFD*
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: rawspeed::TiffEntry::TiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getU32
    - setPosition
    - isIn
    - ThrowTPE
    - static_cast<uint16_t>
    - skipBytes
    - getSubStream
    - check
    - static_cast<TiffDataType>
    - static_cast<TiffTag>
    - rawspeed::TiffEntry::getU16
    - getPosition
    linkageType: ''
    returnType: void
    signature: void TiffEntry::TiffEntry(TiffIFD* parent_, ByteStream& bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:107,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:108,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:110,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:112,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - parent_
    - tag_
    - type_
    - count_
    - data_
    argTypes:
    - TiffIFD*
    - TiffTag
    - TiffDataType
    - uint32_t
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: rawspeed::TiffEntry::TiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - getSize
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void TiffEntry::TiffEntry(TiffIFD* parent_, TiffTag tag_, TiffDataType
      type_,\n                     uint32_t count_, ByteStream data_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: rawspeed::TiffEntry::setData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntry::setData(ByteStream data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:121,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:122,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:122,1
    - Dst: setData
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - parent_
    - tag_
    - type_
    - count_
    - mirror
    argTypes:
    - TiffIFD*
    - TiffTag
    - TiffDataType
    - uint32_t
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: rawspeed::TiffEntryWithData::TiffEntryWithData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - setData
    - implicit_cast<Buffer::size_type>
    - DataBuffer
    - ByteStream
    - Buffer
    - data
    - size
    - Buffer::end
    - Buffer::begin
    linkageType: ''
    returnType: void
    signature: "void TiffEntryWithData::TiffEntryWithData(TiffIFD* parent_, TiffTag
      tag_,\n                                     TiffDataType type_, uint32_t count_,\n
      \                                    Buffer mirror)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: rawspeed::RAWSPEED_READONLY::isInt
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isInt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: rawspeed::RAWSPEED_READONLY::isString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isString() const
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: rawspeed::RAWSPEED_READONLY::isFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isFloat() const
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: rawspeed::RAWSPEED_READONLY::isRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isRational() const
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: rawspeed::RAWSPEED_READONLY::isSRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isSRational() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:181,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:182,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:182,1
    - Dst: peekByte
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: rawspeed::TiffEntry::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peekByte
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TiffEntry::getByte(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:189,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:190,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:190,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: rawspeed::TiffEntry::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 1
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peek
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TiffEntry::getU16(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:197,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:198,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:198,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: rawspeed::TiffEntry::getI16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peek
    linkageType: ''
    returnType: int16_t
    signature: int16_t TiffEntry::getI16(uint32_t index) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:206,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:216,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:218,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:218,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: rawspeed::TiffEntry::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - rawspeed::TiffEntry::getU16
    - peek
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TiffEntry::getU32(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getI16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:227,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:229,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:230,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:230,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: rawspeed::TiffEntry::getI32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - rawspeed::TiffEntry::getI16
    - peek
    linkageType: ''
    returnType: int32_t
    signature: int32_t TiffEntry::getI32(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:236,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:237,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:238,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:242,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:244,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: rawspeed::TiffEntry::getRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - isRational
    - rawspeed::TiffEntry::getU32
    linkageType: ''
    returnType: NotARational<uint32_t>
    signature: NotARational<uint32_t> TiffEntry::getRational(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isSRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:250,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:251,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:252,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:256,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:258,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: rawspeed::TiffEntry::getSRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - isSRational
    - rawspeed::TiffEntry::getI32
    linkageType: ''
    returnType: NotARational<int32_t>
    signature: NotARational<int32_t> TiffEntry::getSRational(uint32_t index) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isFloat
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:264,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:265,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:267,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:267,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:273,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:273,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:275,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:278,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:278,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:281,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:281,1
    - Dst: rawspeed::TiffEntry::getRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:283,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:284,1
    - Dst: rawspeed::TiffEntry::getSRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:287,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 294
    functionName: rawspeed::TiffEntry::getFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getU32
    - isFloat
    - rawspeed::TiffEntry::getRational
    - rawspeed::TiffEntry::getSRational
    - ThrowTPE
    - static_cast<float>
    - peek
    - rawspeed::TiffEntry::getI32
    - implicit_cast<float>
    - static_cast<unsigned>
    linkageType: ''
    returnType: float
    signature: float TiffEntry::getFloat(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:298,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:299,1
    - Dst: peekBuffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:302,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:302,1
    - Dst: std::find
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:304,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:304,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: rawspeed::TiffEntry::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - getRemainSize
    - ThrowTPE
    - reinterpret_cast<const char*>
    - Buffer::end
    - std::find
    - peekBuffer
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string TiffEntry::getString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const TiffRootIFD*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:312,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (r != nullptr)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 322
    functionName: rawspeed::TiffEntry::getRootIfdData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - assert
    - dynamic_cast<const TiffRootIFD*>
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer TiffEntry::getRootIfdData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rawspeed::TiffEntry::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntry::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rawspeed::TiffEntryWithData::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntryWithData::anchor() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:58,1
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:58,1
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:59,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:60,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:61,1
    - Dst: static_cast<TiffDataType>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:63,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:64,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:68,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:74,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:75,1
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:75,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:76,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:78,1
    - Dst: isIn
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:80,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:86,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:94,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:95,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - parent_
    - ' bs'
    argTypes:
    - TiffIFD*
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: rawspeed::TiffEntry::TiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getU32
    - setPosition
    - isIn
    - ThrowTPE
    - static_cast<uint16_t>
    - skipBytes
    - getSubStream
    - check
    - static_cast<TiffDataType>
    - static_cast<TiffTag>
    - rawspeed::TiffEntry::getU16
    - getPosition
    linkageType: ''
    returnType: void
    signature: void TiffEntry::TiffEntry(TiffIFD* parent_, ByteStream& bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:107,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:108,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:110,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:112,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - parent_
    - tag_
    - type_
    - count_
    - data_
    argTypes:
    - TiffIFD*
    - TiffTag
    - TiffDataType
    - uint32_t
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: rawspeed::TiffEntry::TiffEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - getSize
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void TiffEntry::TiffEntry(TiffIFD* parent_, TiffTag tag_, TiffDataType
      type_,\n                     uint32_t count_, ByteStream data_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: rawspeed::TiffEntry::setData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffEntry::setData(ByteStream data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:121,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:122,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:122,1
    - Dst: setData
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:123,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - parent_
    - tag_
    - type_
    - count_
    - mirror
    argTypes:
    - TiffIFD*
    - TiffTag
    - TiffDataType
    - uint32_t
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: rawspeed::TiffEntryWithData::TiffEntryWithData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - setData
    - implicit_cast<Buffer::size_type>
    - DataBuffer
    - ByteStream
    - Buffer
    - data
    - size
    - Buffer::end
    - Buffer::begin
    linkageType: ''
    returnType: void
    signature: "void TiffEntryWithData::TiffEntryWithData(TiffIFD* parent_, TiffTag
      tag_,\n                                     TiffDataType type_, uint32_t count_,\n
      \                                    Buffer mirror)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: rawspeed::RAWSPEED_READONLY::isInt
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isInt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: rawspeed::RAWSPEED_READONLY::isString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isString() const
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: rawspeed::RAWSPEED_READONLY::isFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isFloat() const
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: rawspeed::RAWSPEED_READONLY::isRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isRational() const
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: rawspeed::RAWSPEED_READONLY::isSRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RAWSPEED_READONLY TiffEntry::isSRational() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:181,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:182,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:182,1
    - Dst: peekByte
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: rawspeed::TiffEntry::getByte
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peekByte
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t TiffEntry::getByte(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:189,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:190,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:190,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: rawspeed::TiffEntry::getU16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 3
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peek
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TiffEntry::getU16(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:197,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:198,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:198,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: rawspeed::TiffEntry::getI16
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 1
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - peek
    linkageType: ''
    returnType: int16_t
    signature: int16_t TiffEntry::getI16(uint32_t index) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getU16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:206,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:216,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:218,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:218,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: rawspeed::TiffEntry::getU32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 4
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - rawspeed::TiffEntry::getU16
    - peek
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TiffEntry::getU32(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getI16
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:227,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:229,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:230,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:230,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: rawspeed::TiffEntry::getI32
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 2
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - rawspeed::TiffEntry::getI16
    - peek
    linkageType: ''
    returnType: int32_t
    signature: int32_t TiffEntry::getI32(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:236,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:237,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:238,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:242,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:244,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: rawspeed::TiffEntry::getRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned>
    - ThrowTPE
    - isRational
    - rawspeed::TiffEntry::getU32
    linkageType: ''
    returnType: NotARational<uint32_t>
    signature: NotARational<uint32_t> TiffEntry::getRational(uint32_t index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isSRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:250,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:251,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:252,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:256,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:258,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: rawspeed::TiffEntry::getSRational
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 1
    functionsReached:
    - ThrowTPE
    - static_cast<unsigned>
    - isSRational
    - rawspeed::TiffEntry::getI32
    linkageType: ''
    returnType: NotARational<int32_t>
    signature: NotARational<int32_t> TiffEntry::getSRational(uint32_t index) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isFloat
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:264,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:265,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:267,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:267,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:273,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:273,1
    - Dst: peek
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:275,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:278,1
    - Dst: rawspeed::TiffEntry::getU32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:278,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:281,1
    - Dst: rawspeed::TiffEntry::getI32
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:281,1
    - Dst: rawspeed::TiffEntry::getRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:283,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:284,1
    - Dst: rawspeed::TiffEntry::getSRational
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:287,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 294
    functionName: rawspeed::TiffEntry::getFloat
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getU32
    - isFloat
    - rawspeed::TiffEntry::getRational
    - rawspeed::TiffEntry::getSRational
    - ThrowTPE
    - static_cast<float>
    - peek
    - rawspeed::TiffEntry::getI32
    - implicit_cast<float>
    - static_cast<unsigned>
    linkageType: ''
    returnType: float
    signature: float TiffEntry::getFloat(uint32_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:298,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:299,1
    - Dst: peekBuffer
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:302,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:302,1
    - Dst: std::find
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:303,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:304,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:304,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: rawspeed::TiffEntry::getString
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - getRemainSize
    - ThrowTPE
    - reinterpret_cast<const char*>
    - Buffer::end
    - std::find
    - peekBuffer
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string TiffEntry::getString() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const TiffRootIFD*>
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:312,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (r != nullptr)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 322
    functionName: rawspeed::TiffEntry::getRootIfdData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - assert
    - dynamic_cast<const TiffRootIFD*>
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer TiffEntry::getRootIfdData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: rawspeed::TiffEntry::getArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> getArray(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: ~TiffEntry()
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TiffEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffEntry::getU16Array
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> getU16Array(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: rawspeed::TiffEntry::getU32Array
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> getU32Array(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: rawspeed::TiffEntry::getFloatArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> getFloatArray(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rawspeed::TiffEntry::getRationalArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<NotARational<uint32_t>>
    signature: std::vector<NotARational<uint32_t>> getRationalArray(uint32_t count_)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: rawspeed::TiffEntry::getSRationalArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<NotARational<int32_t>>
    signature: std::vector<NotARational<int32_t>> getSRationalArray(uint32_t count_)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed::TiffEntry::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: rawspeed::TiffEntry::getArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> getArray(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: ~TiffEntry()
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TiffEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffEntry::getU16Array
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> getU16Array(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: rawspeed::TiffEntry::getU32Array
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> getU32Array(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: rawspeed::TiffEntry::getFloatArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> getFloatArray(uint32_t count_) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rawspeed::TiffEntry::getRationalArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<NotARational<uint32_t>>
    signature: std::vector<NotARational<uint32_t>> getRationalArray(uint32_t count_)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::TiffEntry::getArray
      Src: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count_
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: rawspeed::TiffEntry::getSRationalArray
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached:
    - rawspeed::TiffEntry::getArray
    linkageType: ''
    returnType: std::vector<NotARational<int32_t>>
    signature: std::vector<NotARational<int32_t>> getSRationalArray(uint32_t count_)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: rawspeed::TiffEntry::getData
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream getData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: ~TiffIFD()
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TiffIFD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD(const TiffIFD&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& operator=(const TiffIFD&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD & operator=(const TiffIFD&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: rawspeed::TiffIFD::getNextIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getNextIFD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: rawspeed::TiffIFD::hasEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void hasEntry(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: rawspeed::TiffIFD::hasEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - getEntryRecursive
    linkageType: ''
    returnType: bool
    signature: bool hasEntryRecursive(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: '& getSubIFDs() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TiffIFDOwner>
    signature: std::vector<TiffIFDOwner> & getSubIFDs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - parent_
    - ifds
    - data
    - offset
    argTypes:
    - TiffIFD*
    - NORangesSet<Buffer>*
    - DataBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: rawspeed::TiffRootIFD::TiffRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiffRootIFD(TiffIFD* parent_, NORangesSet<Buffer>* ifds, DataBuffer
      data,\n              uint32_t offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:155,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:157,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bs
    - pos
    argTypes:
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: rawspeed::getTiffByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - ByteStream::hasPatternAt
    linkageType: ''
    returnType: Endianness
    signature: "Endianness getTiffByteOrder(ByteStream bs, uint32_t pos,\n                                   const
      char* context = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: ~TiffIFD()
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TiffIFD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: rawspeed::TiffIFD::TiffIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TiffIFD(const TiffIFD&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& operator=(const TiffIFD&)'
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD & operator=(const TiffIFD&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: rawspeed::TiffIFD::getNextIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getNextIFD() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: rawspeed::TiffIFD::hasEntry
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void hasEntry(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: rawspeed::TiffIFD::hasEntryRecursive
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - getEntryRecursive
    linkageType: ''
    returnType: bool
    signature: bool hasEntryRecursive(TiffTag tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: '& getSubIFDs() const'
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TiffIFDOwner>
    signature: std::vector<TiffIFDOwner> & getSubIFDs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - parent_
    - ifds
    - data
    - offset
    argTypes:
    - TiffIFD*
    - NORangesSet<Buffer>*
    - DataBuffer
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: rawspeed::TiffRootIFD::TiffRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TiffRootIFD(TiffIFD* parent_, NORangesSet<Buffer>* ifds, DataBuffer
      data,\n              uint32_t offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:155,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:157,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bs
    - pos
    argTypes:
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: rawspeed::getTiffByteOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    functionUses: 0
    functionsReached:
    - ThrowTPE
    - ByteStream::hasPatternAt
    linkageType: ''
    returnType: Endianness
    signature: "Endianness getTiffByteOrder(ByteStream bs, uint32_t pos,\n                                   const
      char* context = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code_
    argTypes:
    - PrefixCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: rawspeed::AbstractPrefixCodeTranscoder::AbstractPrefixCodeTranscoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCodeTranscoder(PrefixCode<CodeTag> code_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:54,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:57,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (maxCodePlusDiffLength() <= 32U)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
    - assert
    linkageType: ''
    returnType: void
    signature: void verifyCodeValuesAsDiffLengths() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - nCodesPerLength::size
    linkageType: ''
    returnType: void
    signature: void maxCodeLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: std::max_element
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: Base::codeValues::cbegin
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: Base::codeValues::cend
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 1
    functionsReached:
    - Base::codeValues::cbegin
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - std::max_element
    - Base::codeValues::cend
    linkageType: ''
    returnType: void
    signature: void maxCodePlusDiffLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:72,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: rawspeed::AbstractPrefixCodeTranscoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
    - invariant
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void isFullDecode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handleDNGBug16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractPrefixCodeTranscoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: operator==(const AbstractPrefixCodeTranscoder& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const AbstractPrefixCodeTranscoder& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code_
    argTypes:
    - PrefixCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: rawspeed::AbstractPrefixCodeTranscoder::AbstractPrefixCodeTranscoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCodeTranscoder(PrefixCode<CodeTag> code_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:54,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:57,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (maxCodePlusDiffLength() <= 32U)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
    - assert
    linkageType: ''
    returnType: void
    signature: void verifyCodeValuesAsDiffLengths() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 1
    functionsReached:
    - nCodesPerLength::size
    linkageType: ''
    returnType: void
    signature: void maxCodeLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: std::max_element
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: Base::codeValues::cbegin
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:67,1
    - Dst: Base::codeValues::cend
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 2
    functionsReached:
    - Base::codeValues::cbegin
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - std::max_element
    - Base::codeValues::cend
    linkageType: ''
    returnType: void
    signature: void maxCodePlusDiffLength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:72,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: rawspeed::AbstractPrefixCodeTranscoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
    - invariant
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void isFullDecode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handleDNGBug16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractPrefixCodeTranscoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: operator==(const AbstractPrefixCodeTranscoder& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const AbstractPrefixCodeTranscoder& other) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:96,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:100,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:101,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:109,1
    - Dst: bitwidth<LUTEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:111,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:115,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:122,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:122,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:125,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:130,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:136,1
    - Dst: LUTUnsignedEntryTy
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:140,1
    - Dst: static_cast<LUTEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:142,1
    - Dst: static_cast<LUTUnsignedEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:143,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 149
    functionName: rawspeed::PrefixCodeLUTDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - symbols::size
    - static_cast<int>
    - size
    - bitwidth<LUTEntryTy>
    - static_cast<LUTUnsignedEntryTy>
    - ThrowRDE
    - LUTUnsignedEntryTy
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - rawspeed::DngOpcodes::DngOpcode::setup
    - invariant
    - extractHighBits
    - resize
    - static_cast<LUTEntryTy>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:156,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:156,1
    - Dst: rawspeed::PrefixCodeLUTDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed::PrefixCodeLUTDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLUTDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:165,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:165,1
    - Dst: rawspeed::PrefixCodeLUTDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: rawspeed::PrefixCodeLUTDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLUTDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:178,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:178,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:179,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:183,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:184,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:186,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:186,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:187,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:188,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:192,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:203,1
    - Dst: implicit_cast<typename Traits::CodeValueTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:204,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:205,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:209,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:210,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:211,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:212,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts:
    - condition: (partial.code < decodeLookup.size())
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: rawspeed::PrefixCodeLUTDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 2
    functionsReached:
    - peekBitsNoFill
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - size
    - skipBitsNoFill
    - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - implicit_cast<typename Traits::CodeValueTy>
    - invariant
    - std::tie
    - static_cast<int>
    - implicit_cast<uint8_t>
    - static_cast<unsigned>
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:96,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:100,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:101,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:109,1
    - Dst: bitwidth<LUTEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:111,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:115,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:122,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:122,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:125,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:130,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:136,1
    - Dst: LUTUnsignedEntryTy
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:140,1
    - Dst: static_cast<LUTEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:142,1
    - Dst: static_cast<LUTUnsignedEntryTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:143,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 149
    functionName: rawspeed::PrefixCodeLUTDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - symbols::size
    - static_cast<int>
    - size
    - bitwidth<LUTEntryTy>
    - static_cast<LUTUnsignedEntryTy>
    - ThrowRDE
    - LUTUnsignedEntryTy
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - rawspeed::DngOpcodes::DngOpcode::setup
    - invariant
    - extractHighBits
    - resize
    - static_cast<LUTEntryTy>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:156,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:156,1
    - Dst: rawspeed::PrefixCodeLUTDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: rawspeed::PrefixCodeLUTDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLUTDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:165,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:165,1
    - Dst: rawspeed::PrefixCodeLUTDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: rawspeed::PrefixCodeLUTDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLUTDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:178,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:178,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:179,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:183,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:184,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:186,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:186,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:187,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:188,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:192,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:203,1
    - Dst: implicit_cast<typename Traits::CodeValueTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:204,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:205,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:209,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:210,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:211,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:212,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts:
    - condition: (partial.code < decodeLookup.size())
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: rawspeed::PrefixCodeLUTDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
    functionUses: 4
    functionsReached:
    - peekBitsNoFill
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - size
    - skipBitsNoFill
    - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - implicit_cast<typename Traits::CodeValueTy>
    - invariant
    - std::tie
    - static_cast<int>
    - implicit_cast<uint8_t>
    - static_cast<unsigned>
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::HuffmanCode::HuffmanCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HuffmanCode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::HuffmanCode::maxCodeLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void maxCodeLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: rawspeed::HuffmanCode::maxCodesCount
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void maxCodesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:69,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:70,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: rawspeed::HuffmanCode::codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:75,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:75,1
    - Dst: rawspeed::HuffmanCode::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:80,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!nCodesPerLength.empty())
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (this->codeValues.size() == maxCodesCount())
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (maxCodesCount() > 0)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (symbols.size() == maxCodesCount())
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: rawspeed::HuffmanCode::generateCodeSymbols
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::HuffmanCode::maxCodeLength
    - std::vector::emplace_back
    - std::vector::reserve
    - std::vector::size
    - assert
    - rawspeed::HuffmanCode::codeValues::size
    - rawspeed::HuffmanCode::maxCodesCount
    linkageType: ''
    returnType: std::vector<CodeSymbol>
    signature: std::vector<CodeSymbol> generateCodeSymbols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HuffmanCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: operator==(const HuffmanCode& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const HuffmanCode& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:100,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:100,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:102,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:104,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:107,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:107,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:108,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:111,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:113,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:113,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:119,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:124,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts:
    - condition: (nCodesPerLength[0] == 0)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (nCodesPerLength.back() > 0)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 149
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 149
    functionName: rawspeed::HuffmanCode::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - empty
    - pop_back
    - size
    - back
    - Buffer::getSize
    - ThrowRDE
    - assert
    - Buffer::end
    - std::copy
    - invariant
    - resize
    - rawspeed::HuffmanCode::maxCodesCount
    - Buffer::begin
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:152,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:152,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: rawspeed::HuffmanCode::codeValues::clear
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:155,1
    - Dst: rawspeed::HuffmanCode::codeValues::reserve
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:156,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:156,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: rawspeed::HuffmanCode::codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const typename Traits::CodeValueTy>
    assertStmts:
    - condition: (this->codeValues.size() == maxCodesCount())
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: rawspeed::HuffmanCode::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - Array1DRef<const typename Traits::CodeValueTy>::end
    - ThrowRDE
    - assert
    - Array1DRef<const typename Traits::CodeValueTy>::size
    - rawspeed::HuffmanCode::codeValues::size
    - invariant
    - rawspeed::HuffmanCode::codeValues::reserve
    - rawspeed::HuffmanCode::codeValues::clear
    - std::copy
    - rawspeed::HuffmanCode::maxCodesCount
    - std::back_inserter
    - static_cast<unsigned>
    - Array1DRef<const typename Traits::CodeValueTy>::begin
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const typename Traits::CodeValueTy> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generateCodeSymbols
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:169,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:170,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: operator PrefixCode<CodeTag>()
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - generateCodeSymbols
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator PrefixCode<CodeTag>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: rawspeed::HuffmanCode::HuffmanCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HuffmanCode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rawspeed::HuffmanCode::maxCodeLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void maxCodeLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: rawspeed::HuffmanCode::maxCodesCount
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 3
    functionsReached:
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void maxCodesCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:69,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:70,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:70,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: rawspeed::HuffmanCode::codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:72,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:75,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:75,1
    - Dst: rawspeed::HuffmanCode::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:80,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!nCodesPerLength.empty())
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (this->codeValues.size() == maxCodesCount())
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (maxCodesCount() > 0)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (symbols.size() == maxCodesCount())
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: rawspeed::HuffmanCode::generateCodeSymbols
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - empty
    - rawspeed::HuffmanCode::maxCodeLength
    - std::vector::emplace_back
    - std::vector::reserve
    - std::vector::size
    - assert
    - rawspeed::HuffmanCode::codeValues::size
    - rawspeed::HuffmanCode::maxCodesCount
    linkageType: ''
    returnType: std::vector<CodeSymbol>
    signature: std::vector<CodeSymbol> generateCodeSymbols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HuffmanCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: operator==(const HuffmanCode& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const HuffmanCode& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:100,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:100,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:102,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:103,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:104,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:107,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:107,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:108,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:111,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:113,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:113,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:115,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:119,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:124,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts:
    - condition: (nCodesPerLength[0] == 0)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    - condition: (nCodesPerLength.back() > 0)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 149
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 149
    functionName: rawspeed::HuffmanCode::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - empty
    - pop_back
    - size
    - back
    - Buffer::getSize
    - ThrowRDE
    - assert
    - Buffer::end
    - std::copy
    - invariant
    - resize
    - rawspeed::HuffmanCode::maxCodesCount
    - Buffer::begin
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:152,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:152,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:153,1
    - Dst: rawspeed::HuffmanCode::codeValues::clear
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:155,1
    - Dst: rawspeed::HuffmanCode::codeValues::reserve
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:156,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:156,1
    - Dst: std::copy
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::begin
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: Array1DRef<const typename Traits::CodeValueTy>::end
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:157,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: rawspeed::HuffmanCode::codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: rawspeed::HuffmanCode::maxCodesCount
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:158,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const typename Traits::CodeValueTy>
    assertStmts:
    - condition: (this->codeValues.size() == maxCodesCount())
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: rawspeed::HuffmanCode::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - Array1DRef<const typename Traits::CodeValueTy>::end
    - ThrowRDE
    - assert
    - Array1DRef<const typename Traits::CodeValueTy>::size
    - rawspeed::HuffmanCode::codeValues::size
    - invariant
    - rawspeed::HuffmanCode::codeValues::reserve
    - rawspeed::HuffmanCode::codeValues::clear
    - std::copy
    - rawspeed::HuffmanCode::maxCodesCount
    - std::back_inserter
    - static_cast<unsigned>
    - Array1DRef<const typename Traits::CodeValueTy>::begin
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const typename Traits::CodeValueTy> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generateCodeSymbols
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:169,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:170,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: operator PrefixCode<CodeTag>()
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
    functionUses: 0
    functionsReached:
    - generateCodeSymbols
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator PrefixCode<CodeTag>()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' hc'
    argTypes:
    - HuffmanCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(HuffmanCode<CodeTag>&& hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(PrefixCode<CodeTag>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(const PrefixCode<CodeTag>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(PrefixCode<CodeTag>&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:98,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:101,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:101,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:102,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:102,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:104,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (codeOffsetOL[codeLen] != MaxCodeValue)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: rawspeed::PrefixCodeLookupDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - rawspeed::DngOpcodes::DngOpcode::setup
    - resize
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:120,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:120,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: rawspeed::PrefixCodeLookupDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:128,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:128,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: rawspeed::PrefixCodeLookupDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:140,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:143,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:145,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:152,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:154,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:157,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:158,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:160,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' bs'
    - partial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts:
    - condition: (MaxCodeValue != codeOffsetOL[partial.code_len])
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    - condition: (partial.code >= codeOffsetOL[partial.code_len])
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    - condition: (codeIndex < Base::code.codeValues.size())
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 2
    functionsReached:
    - codeValues::size
    - ThrowRDE
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol partial) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: rawspeed::PrefixCodeLookupDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:184,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:184,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:185,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:189,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:189,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: rawspeed::PrefixCodeLookupDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 2
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - rawspeed::PrefixCodeLookupDecoder::readSymbol
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' hc'
    argTypes:
    - HuffmanCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(HuffmanCode<CodeTag>&& hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(PrefixCode<CodeTag>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(const PrefixCode<CodeTag>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrefixCodeLookupDecoder(PrefixCode<CodeTag>&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:98,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:101,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:101,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:102,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:102,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:104,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (codeOffsetOL[codeLen] != MaxCodeValue)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: rawspeed::PrefixCodeLookupDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - rawspeed::DngOpcodes::DngOpcode::setup
    - resize
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:120,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:120,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: rawspeed::PrefixCodeLookupDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:128,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:128,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: rawspeed::PrefixCodeLookupDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::decode
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:140,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:143,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:145,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:152,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:154,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:157,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:158,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:160,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' bs'
    - partial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts:
    - condition: (MaxCodeValue != codeOffsetOL[partial.code_len])
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    - condition: (partial.code >= codeOffsetOL[partial.code_len])
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    - condition: (codeIndex < Base::code.codeValues.size())
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 3
    functionsReached:
    - codeValues::size
    - ThrowRDE
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol partial) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: rawspeed::PrefixCodeLookupDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:184,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:184,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:185,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:189,1
    - Dst: rawspeed::PrefixCodeLookupDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:189,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: rawspeed::PrefixCodeLookupDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
    functionUses: 4
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - rawspeed::PrefixCodeLookupDecoder::readSymbol
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:52,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:52,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:53,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:53,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:54,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:55,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:57,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:59,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:62,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:63,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:64,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:64,1
    - Dst: rawspeed::PrefixCode::verifyCodeSymbols
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - symbols_
    - codeValues_
    argTypes:
    - std::vector<CodeSymbol>
    - std::vector<CodeValueTy>
    assertStmts:
    - condition: (s.code_len > 0 && s.code_len <= Traits::MaxCodeLenghtBits)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    - condition: (nCodesPerLength.size() > 1)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: rawspeed::PrefixCode::PrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    functionUses: 0
    functionsReached:
    - empty
    - std::move
    - size
    - pop_back
    - back
    - ThrowRDE
    - assert
    - rawspeed::PrefixCode::verifyCodeSymbols
    - resize
    linkageType: ''
    returnType: void
    signature: "void PrefixCode(std::vector<CodeSymbol> symbols_,\n             std::vector<CodeValueTy>
      codeValues_)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:79,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:88,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:89,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:89,1
    - Dst: std::less_equal<>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:91,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:93,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:97,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:99,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 102
    functionName: rawspeed::PrefixCode::verifyCodeSymbols
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    functionUses: 1
    functionsReached:
    - std::less_equal<>
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - size
    - cbegin
    - ThrowRDE
    - cend
    - std::adjacent_find
    linkageType: ''
    returnType: void
    signature: void verifyCodeSymbols()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:52,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:52,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:53,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:53,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:54,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:55,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:57,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:59,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:62,1
    - Dst: pop_back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:63,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:64,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:64,1
    - Dst: rawspeed::PrefixCode::verifyCodeSymbols
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - symbols_
    - codeValues_
    argTypes:
    - std::vector<CodeSymbol>
    - std::vector<CodeValueTy>
    assertStmts:
    - condition: (s.code_len > 0 && s.code_len <= Traits::MaxCodeLenghtBits)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    - condition: (nCodesPerLength.size() > 1)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: rawspeed::PrefixCode::PrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    functionUses: 0
    functionsReached:
    - empty
    - std::move
    - size
    - pop_back
    - back
    - ThrowRDE
    - assert
    - rawspeed::PrefixCode::verifyCodeSymbols
    - resize
    linkageType: ''
    returnType: void
    signature: "void PrefixCode(std::vector<CodeSymbol> symbols_,\n             std::vector<CodeValueTy>
      codeValues_)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:79,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:88,1
    - Dst: cbegin
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:89,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:89,1
    - Dst: std::less_equal<>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:91,1
    - Dst: cend
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:93,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:97,1
    - Dst: rawspeed::AbstractPrefixCode::HaveCommonPrefix
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:99,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCode.h:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 102
    functionName: rawspeed::PrefixCode::verifyCodeSymbols
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
    functionUses: 2
    functionsReached:
    - std::less_equal<>
    - rawspeed::AbstractPrefixCode::HaveCommonPrefix
    - size
    - cbegin
    - ThrowRDE
    - cend
    - std::adjacent_find
    linkageType: ''
    returnType: void
    signature: void verifyCodeSymbols()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:50,1
    - Dst: static_cast<Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:50,1
    - Dst: static_cast<Branch&>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Node::Type::Branch == static_cast<Node::Type>(*this))
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: '& getAsBranch()'
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - static_cast<Branch&>
    - assert
    - static_cast<Node::Type>
    linkageType: ''
    returnType: Branch
    signature: Branch & getAsBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:55,1
    - Dst: static_cast<Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:55,1
    - Dst: static_cast<Leaf&>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Node::Type::Leaf == static_cast<Node::Type>(*this))
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: '& getAsLeaf()'
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<Leaf&>
    - static_cast<Node::Type>
    linkageType: ''
    returnType: Leaf
    signature: Leaf & getAsLeaf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ~Node()
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator typename Node::Type() const final
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator typename Node::Type() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: operator typename Node::Type() const final
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator typename Node::Type() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: rawspeed::BinaryPrefixTree::Leaf
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Leaf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value_
    argTypes:
    - CodeTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::BinaryPrefixTree::Leaf
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Leaf(CodeTy value_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:90,1
    - Dst: CodeSymbol::getBitsMSB
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:97,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:100,1
    - Dst: std::make_unique<Branch>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:103,1
    - Dst: getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:110,1
    - Dst: std::make_unique<Leaf>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - symbol
    - value
    argTypes:
    - CodeSymbol
    - CodeTy
    assertStmts:
    - condition: (!bud && "This Node should be vacant!")
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: rawspeed::BinaryPrefixTree<CodeTag>::add
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - getAsBranch
    - std::make_unique<Branch>
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - invariant
    - std::make_unique<Leaf>
    - CodeSymbol::getBitsMSB
    linkageType: ''
    returnType: void
    signature: void BinaryPrefixTree<CodeTag>::add(const CodeSymbol symbol, CodeTy
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:50,1
    - Dst: static_cast<Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:50,1
    - Dst: static_cast<Branch&>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Node::Type::Branch == static_cast<Node::Type>(*this))
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: '& getAsBranch()'
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - static_cast<Branch&>
    - assert
    - static_cast<Node::Type>
    linkageType: ''
    returnType: Branch
    signature: Branch & getAsBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:55,1
    - Dst: static_cast<Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:55,1
    - Dst: static_cast<Leaf&>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Node::Type::Leaf == static_cast<Node::Type>(*this))
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: '& getAsLeaf()'
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<Leaf&>
    - static_cast<Node::Type>
    linkageType: ''
    returnType: Leaf
    signature: Leaf & getAsLeaf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ~Node()
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator typename Node::Type() const final
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator typename Node::Type() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: operator typename Node::Type() const final
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator typename Node::Type() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: rawspeed::BinaryPrefixTree::Leaf
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Leaf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value_
    argTypes:
    - CodeTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::BinaryPrefixTree::Leaf
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Leaf(CodeTy value_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:89,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:90,1
    - Dst: CodeSymbol::getBitsMSB
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:97,1
    - Dst: implicit_cast<typename Traits::CodeTy>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:100,1
    - Dst: std::make_unique<Branch>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:103,1
    - Dst: getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:105,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:107,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:110,1
    - Dst: std::make_unique<Leaf>
      Src: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - symbol
    - value
    argTypes:
    - CodeSymbol
    - CodeTy
    assertStmts:
    - condition: (!bud && "This Node should be vacant!")
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: rawspeed::BinaryPrefixTree<CodeTag>::add
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    functionUses: 0
    functionsReached:
    - getAsBranch
    - std::make_unique<Branch>
    - assert
    - implicit_cast<typename Traits::CodeTy>
    - invariant
    - std::make_unique<Leaf>
    - CodeSymbol::getBitsMSB
    linkageType: ''
    returnType: void
    signature: void BinaryPrefixTree<CodeTag>::add(const CodeSymbol symbol, CodeTy
      value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: root::getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:57,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:70,1
    - Dst: static_cast<typename decltype(tree)::Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:74,1
    - Dst: getAsLeaf
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:77,1
    - Dst: getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:81,1
    - Dst: typename Base::CodeSymbol::getBitsMSB
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:86,1
    - Dst: walkBinaryTree
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:87,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:93,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:96,1
    - Dst: walkBinaryTree
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:98,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' bs'
    - initialPartial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 104
    functionName: rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - getAsLeaf
    - getAsBranch
    - static_cast<typename decltype(tree)::Node::Type>
    - __builtin_unreachable
    - ThrowRDE
    - typename Base::CodeSymbol::getBitsMSB
    - walkBinaryTree
    - invariant
    - root::getAsBranch
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol initialPartial)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: rawspeed::PrefixCodeTreeDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:123,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:126,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (Base::code.symbols.size() == Base::code.codeValues.size())
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: rawspeed::PrefixCodeTreeDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - codeValues::size
    - symbols::size
    - assert
    - rawspeed::DngOpcodes::DngOpcode::setup
    - add
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:136,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:136,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: rawspeed::PrefixCodeTreeDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeTreeDecoder::decode
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:144,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:144,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: rawspeed::PrefixCodeTreeDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeTreeDecoder::decode
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:157,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:157,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:159,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:163,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:163,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: rawspeed::PrefixCodeTreeDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 2
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeTreeDecoder::readSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: root::getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:57,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:70,1
    - Dst: static_cast<typename decltype(tree)::Node::Type>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:74,1
    - Dst: getAsLeaf
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:77,1
    - Dst: getAsBranch
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:81,1
    - Dst: typename Base::CodeSymbol::getBitsMSB
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:86,1
    - Dst: walkBinaryTree
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:87,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:93,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:96,1
    - Dst: walkBinaryTree
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:98,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' bs'
    - initialPartial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 104
    functionName: rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 1
    functionsReached:
    - getAsLeaf
    - getAsBranch
    - static_cast<typename decltype(tree)::Node::Type>
    - __builtin_unreachable
    - ThrowRDE
    - typename Base::CodeSymbol::getBitsMSB
    - walkBinaryTree
    - invariant
    - root::getAsBranch
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol initialPartial)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: rawspeed::PrefixCodeTreeDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:123,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:125,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:126,1
    - Dst: add
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (Base::code.symbols.size() == Base::code.codeValues.size())
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: rawspeed::PrefixCodeTreeDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - codeValues::size
    - symbols::size
    - assert
    - rawspeed::DngOpcodes::DngOpcode::setup
    - add
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:136,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:136,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: rawspeed::PrefixCodeTreeDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeTreeDecoder::decode
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:144,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:144,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: rawspeed::PrefixCodeTreeDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeTreeDecoder::decode
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:157,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:157,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:159,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:163,1
    - Dst: rawspeed::PrefixCodeTreeDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:163,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: rawspeed::PrefixCodeTreeDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
    functionUses: 4
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeTreeDecoder::readSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - HuffmanCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrefixCodeDecoder(HuffmanCode<CodeTag> code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - PrefixCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrefixCodeDecoder(PrefixCode<CodeTag> code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed::DummyPrefixCodeDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::DummyPrefixCodeDecoder::isFullDecode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isFullDecode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:58,1
    - Dst: rawspeed::DummyPrefixCodeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: rawspeed::DummyPrefixCodeDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DummyPrefixCodeDecoder::decode
    - invariant
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:66,1
    - Dst: rawspeed::DummyPrefixCodeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: rawspeed::DummyPrefixCodeDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DummyPrefixCodeDecoder::decode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: rawspeed::DummyPrefixCodeDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 2
    functionsReached:
    - invariant
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - HuffmanCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrefixCodeDecoder(HuffmanCode<CodeTag> code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - PrefixCode<CodeTag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrefixCodeDecoder(PrefixCode<CodeTag> code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: rawspeed::DummyPrefixCodeDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::DummyPrefixCodeDecoder::isFullDecode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isFullDecode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:58,1
    - Dst: rawspeed::DummyPrefixCodeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: rawspeed::DummyPrefixCodeDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DummyPrefixCodeDecoder::decode
    - invariant
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:66,1
    - Dst: rawspeed::DummyPrefixCodeDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: rawspeed::DummyPrefixCodeDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DummyPrefixCodeDecoder::decode
    - invariant
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: rawspeed::DummyPrefixCodeDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
    functionUses: 4
    functionsReached:
    - invariant
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::AbstractPrefixCodeEncoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:50,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:54,1
    - Dst: numSignificantBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:55,1
    - Dst: extractLowBitsSafe
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - extendedDiff
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractPrefixCodeEncoder::reduce
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h
    functionUses: 0
    functionsReached:
    - extractLowBitsSafe
    - numActiveBits
    - numSignificantBits
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void reduce(int32_t extendedDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: rawspeed::AbstractPrefixCodeEncoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:50,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:54,1
    - Dst: numSignificantBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:55,1
    - Dst: extractLowBitsSafe
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - extendedDiff
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractPrefixCodeEncoder::reduce
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h
    functionUses: 0
    functionsReached:
    - extractLowBitsSafe
    - numActiveBits
    - numSignificantBits
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void reduce(int32_t extendedDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:44,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:45,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:45,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:46,1
    - Dst: put
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' bv'
    - codeIndex
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - implicit_cast<int>
    - symbols::size
    - invariant
    - put
    linkageType: ''
    returnType: void
    signature: void encodeCodeValueImpl(BIT_VACUUMER& bv, int codeIndex) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:54,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:54,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - implicit_cast<int>
    - codeValues::size
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getCodeIndexOfCodeValue(const typename Traits::CodeValueTy value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed::PrefixCodeVectorEncoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:74,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:74,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:75,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bv'
    - codeValue
    argTypes:
    - BIT_VACUUMER
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    linkageType: ''
    returnType: void
    signature: "void encodeCodeValue(BIT_VACUUMER& bv,\n                       typename
      Traits::CodeValueTy codeValue) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:84,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:84,1
    - Dst: rawspeed::AbstractPrefixCodeEncoder::reduce
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:85,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:86,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:87,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:88,1
    - Dst: put
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bv'
    - value
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::AbstractPrefixCodeEncoder::reduce
    - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    - invariant
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - put
    linkageType: ''
    returnType: void
    signature: void encodeDifference(BIT_VACUUMER& bv, int value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:97,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:97,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:100,1
    - Dst: implicit_cast<typename Traits::CodeValueTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:100,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeDifference
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bv'
    - value
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed::PrefixCodeVectorEncoder::encode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
    - rawspeed::PrefixCodeVectorEncoder::encodeDifference
    - implicit_cast<typename Traits::CodeValueTy>
    - invariant
    linkageType: ''
    returnType: void
    signature: void encode(BIT_VACUUMER& bv, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:44,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:45,1
    - Dst: symbols::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:45,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:46,1
    - Dst: put
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' bv'
    - codeIndex
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 2
    functionsReached:
    - implicit_cast<int>
    - symbols::size
    - invariant
    - put
    linkageType: ''
    returnType: void
    signature: void encodeCodeValueImpl(BIT_VACUUMER& bv, int codeIndex) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:54,1
    - Dst: codeValues::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:54,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 2
    functionsReached:
    - implicit_cast<int>
    - codeValues::size
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getCodeIndexOfCodeValue(const typename Traits::CodeValueTy value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rawspeed::PrefixCodeVectorEncoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::DngOpcodes::DngOpcode::setup
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:74,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:74,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:75,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bv'
    - codeValue
    argTypes:
    - BIT_VACUUMER
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    linkageType: ''
    returnType: void
    signature: "void encodeCodeValue(BIT_VACUUMER& bv,\n                       typename
      Traits::CodeValueTy codeValue) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:84,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:84,1
    - Dst: rawspeed::AbstractPrefixCodeEncoder::reduce
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:85,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:86,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:87,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:88,1
    - Dst: put
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bv'
    - value
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: rawspeed::PrefixCodeVectorEncoder::encodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::AbstractPrefixCodeEncoder::reduce
    - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
    - invariant
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - put
    linkageType: ''
    returnType: void
    signature: void encodeDifference(BIT_VACUUMER& bv, int value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:97,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:97,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:100,1
    - Dst: implicit_cast<typename Traits::CodeValueTy>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:100,1
    - Dst: rawspeed::PrefixCodeVectorEncoder::encodeDifference
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bv'
    - value
    argTypes:
    - BIT_VACUUMER
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rawspeed::PrefixCodeVectorEncoder::encode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
    - rawspeed::PrefixCodeVectorEncoder::encodeDifference
    - implicit_cast<typename Traits::CodeValueTy>
    - invariant
    linkageType: ''
    returnType: void
    signature: void encode(BIT_VACUUMER& bv, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rawspeed::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: rawspeed::AbstractPrefixCode::CodeSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:152,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:153,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code_
    - code_len_
    argTypes:
    - typename Traits::CodeTy
    - uint8_t
    assertStmts:
    - condition: (code_len > 0)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - condition: (code_len <= Traits::MaxCodeLenghtBits)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - condition: (code <= ((1U << code_len) - 1U))
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: rawspeed::AbstractPrefixCode::CodeSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 12
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void CodeSymbol(typename Traits::CodeTy code_, uint8_t code_len_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed::AbstractPrefixCode::getBitsMSB
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<BitMSBIterator<typename Traits::CodeTy>>
    signature: iterator_range<BitMSBIterator<typename Traits::CodeTy>> getBitsMSB()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:164,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' symbol'
    - ' partial'
    argTypes:
    - CodeSymbol
    - CodeSymbol
    assertStmts:
    - condition: (partial.code_len <= symbol.code_len)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: rawspeed::AbstractPrefixCode::HaveCommonPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 14
    functionsReached:
    - assert
    - extractHighBits
    linkageType: ''
    returnType: bool
    signature: "bool HaveCommonPrefix(const CodeSymbol& symbol,\n                                 const
      CodeSymbol& partial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: operator==(const CodeSymbol& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator==(const CodeSymbol& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: rawspeed::AbstractPrefixCode::AbstractPrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:181,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:182,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:183,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:184,1
    - Dst: all_of
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - codeValues_
    argTypes:
    - std::vector<CodeValueTy>
    assertStmts:
    - condition: "(\n        all_of(codeValues.begin(), codeValues.end(),\n               [](const
        CodeValueTy& v) { return v <= Traits::MaxCodeValue; }))"
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: rawspeed::AbstractPrefixCode::AbstractPrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached:
    - empty
    - std::move
    - all_of
    - end
    - begin
    - ThrowRDE
    - assert
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCode(std::vector<CodeValueTy> codeValues_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rawspeed::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: rawspeed::AbstractPrefixCode::CodeSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CodeSymbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:152,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:153,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code_
    - code_len_
    argTypes:
    - typename Traits::CodeTy
    - uint8_t
    assertStmts:
    - condition: (code_len > 0)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - condition: (code_len <= Traits::MaxCodeLenghtBits)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - condition: (code <= ((1U << code_len) - 1U))
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: rawspeed::AbstractPrefixCode::CodeSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 12
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void CodeSymbol(typename Traits::CodeTy code_, uint8_t code_len_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: rawspeed::AbstractPrefixCode::getBitsMSB
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<BitMSBIterator<typename Traits::CodeTy>>
    signature: iterator_range<BitMSBIterator<typename Traits::CodeTy>> getBitsMSB()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:164,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' symbol'
    - ' partial'
    argTypes:
    - CodeSymbol
    - CodeSymbol
    assertStmts:
    - condition: (partial.code_len <= symbol.code_len)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: rawspeed::AbstractPrefixCode::HaveCommonPrefix
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 14
    functionsReached:
    - assert
    - extractHighBits
    linkageType: ''
    returnType: bool
    signature: "bool HaveCommonPrefix(const CodeSymbol& symbol,\n                                 const
      CodeSymbol& partial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: operator==(const CodeSymbol& other) const
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator==(const CodeSymbol& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: rawspeed::AbstractPrefixCode::AbstractPrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:181,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:182,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:183,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:184,1
    - Dst: all_of
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - codeValues_
    argTypes:
    - std::vector<CodeValueTy>
    assertStmts:
    - condition: "(\n        all_of(codeValues.begin(), codeValues.end(),\n               [](const
        CodeValueTy& v) { return v <= Traits::MaxCodeValue; }))"
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: rawspeed::AbstractPrefixCode::AbstractPrefixCode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    functionUses: 0
    functionsReached:
    - empty
    - std::move
    - all_of
    - end
    - begin
    - ThrowRDE
    - assert
    linkageType: ''
    returnType: void
    signature: void AbstractPrefixCode(std::vector<CodeValueTy> codeValues_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:46,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:56,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:59,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:64,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:65,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' bs'
    - symbol
    - codeValue
    argTypes:
    - BIT_STREAM
    - CodeSymbol
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 66
    functionName: rawspeed::AbstractPrefixCodeDecoder::processSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - invariant
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - getBitsNoFill
    linkageType: ''
    returnType: int
    signature: "int processSymbol(BIT_STREAM& bs, CodeSymbol symbol,\n                    typename
      Traits::CodeValueTy codeValue) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:71,1
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - diff
    - len
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: rawspeed::AbstractPrefixCodeDecoder::extend
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h
    functionUses: 7
    functionsReached:
    - static_cast<int32_t>
    - invariant
    linkageType: ''
    returnType: void
    signature: void extend(uint32_t diff, uint32_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:46,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:56,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:59,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:64,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:65,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' bs'
    - symbol
    - codeValue
    argTypes:
    - BIT_STREAM
    - CodeSymbol
    - typename Traits::CodeValueTy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 66
    functionName: rawspeed::AbstractPrefixCodeDecoder::processSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - invariant
    - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
    - getBitsNoFill
    linkageType: ''
    returnType: int
    signature: "int processSymbol(BIT_STREAM& bs, CodeSymbol symbol,\n                    typename
      Traits::CodeValueTy codeValue) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:71,1
    - Dst: static_cast<int32_t>
      Src: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - diff
    - len
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: rawspeed::AbstractPrefixCodeDecoder::extend
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h
    functionUses: 8
    functionsReached:
    - static_cast<int32_t>
    - invariant
    linkageType: ''
    returnType: void
    signature: void extend(uint32_t diff, uint32_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:59,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:61,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' bs'
    - partial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - getBitsNoFill
    - invariant
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol partial) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: rawspeed::PrefixCodeVectorDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:93,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:95,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:95,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:96,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:97,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:99,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:101,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (extrCodeIdForLen.size() == 1U + Base::code.nCodesPerLength.size())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: rawspeed::PrefixCodeVectorDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - nCodesPerLength::size
    - reserve
    - size
    - emplace_back
    - back
    - assert
    - rawspeed::DngOpcodes::DngOpcode::setup
    - resize
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:111,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:111,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: rawspeed::PrefixCodeVectorDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorDecoder::decode
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:119,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:119,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: rawspeed::PrefixCodeVectorDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorDecoder::decode
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:132,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:132,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:134,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:138,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:138,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: rawspeed::PrefixCodeVectorDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 2
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeVectorDecoder::readSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:59,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:61,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' bs'
    - partial
    argTypes:
    - BIT_STREAM
    - typename Base::CodeSymbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
    - getBitsNoFill
    - invariant
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: "std::pair<typename Base::CodeSymbol, int /*codeValue*/> finishReadingPartialSymbol(BIT_STREAM&
      bs,\n                             typename Base::CodeSymbol partial) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: rawspeed::PrefixCodeVectorDecoder::readSymbol
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
    linkageType: ''
    returnType: std::pair<typename Base::CodeSymbol, int /*codeValue*/>
    signature: std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM&
      bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngOpcodes::DngOpcode::setup
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:93,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:95,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:95,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:96,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:97,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:99,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:101,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    - Dst: nCodesPerLength::size
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts:
    - condition: (extrCodeIdForLen.size() == 1U + Base::code.nCodesPerLength.size())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: rawspeed::PrefixCodeVectorDecoder::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - nCodesPerLength::size
    - reserve
    - size
    - emplace_back
    - back
    - assert
    - rawspeed::DngOpcodes::DngOpcode::setup
    - resize
    linkageType: ''
    returnType: void
    signature: void setup(bool fullDecode_, bool fixDNGBug16_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:111,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:111,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: rawspeed::PrefixCodeVectorDecoder::decodeCodeValue
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorDecoder::decode
    linkageType: ''
    returnType: typename Traits::CodeValueTy
    signature: typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:119,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:119,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::decode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: rawspeed::PrefixCodeVectorDecoder::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - invariant
    - rawspeed::PrefixCodeVectorDecoder::decode
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:132,1
    - Dst: rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:132,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:134,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:138,1
    - Dst: rawspeed::PrefixCodeVectorDecoder::readSymbol
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:138,1
    - Dst: Base::template processSymbol<BIT_STREAM, FULL_DECODE>
      Src: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - BIT_STREAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: rawspeed::PrefixCodeVectorDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
    functionUses: 4
    functionsReached:
    - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
    - rawspeed::PrefixCodeVectorDecoder::readSymbol
    - Base::template processSymbol<BIT_STREAM, FULL_DECODE>
    - std::tie
    - invariant
    - fill
    linkageType: ''
    returnType: int
    signature: int decode(BIT_STREAM& bs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' mRaw_'
    - input_
    - sraw_coeffs_
    - hue_
    argTypes:
    - RawImage
    - Array2DRef<const uint16_t>
    - std::array<int, 3>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: rawspeed::Cr2sRawInterpolator::Cr2sRawInterpolator
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator(const RawImage& mRaw_, Array2DRef<const uint16_t>
      input_,\n                      std::array<int, 3> sraw_coeffs_, int hue_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' mRaw_'
    - input_
    - sraw_coeffs_
    - hue_
    argTypes:
    - RawImage
    - Array2DRef<const uint16_t>
    - std::array<int, 3>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: rawspeed::Cr2sRawInterpolator::Cr2sRawInterpolator
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator(const RawImage& mRaw_, Array2DRef<const uint16_t>
      input_,\n                      std::array<int, 3> sraw_coeffs_, int hue_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:44,1
    - Dst: CroppedArray1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:44,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - in
    argTypes:
    - YCbCr*
    - CroppedArray1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: rawspeed::LoadY
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - CroppedArray1DRef<const uint16_t>::size
    - in
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void LoadY(YCbCr* p, const CroppedArray1DRef<const uint16_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:50,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:51,1
    - Dst: CroppedArray1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:51,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:53,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - in
    argTypes:
    - YCbCr*
    - CroppedArray1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: rawspeed::LoadCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - CroppedArray1DRef<const uint16_t>::size
    - in
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void LoadCbCr(YCbCr* p, const CroppedArray1DRef<const uint16_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - ' pSrc'
    argTypes:
    - YCbCr*
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: rawspeed::CopyCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void CopyCbCr(YCbCr* p, const YCbCr& pSrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::YCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void YCbCr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: rawspeed::signExtend
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signExtend()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hue_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: rawspeed::applyHue
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void applyHue(int hue_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::signExtend
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:77,1
    - Dst: rawspeed::applyHue
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hue_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: rawspeed::process
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::applyHue
    - rawspeed::signExtend
    linkageType: ''
    returnType: void
    signature: void process(int hue_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p0'
    - ' p2'
    argTypes:
    - YCbCr
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: rawspeed::interpolateCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void interpolateCbCr(const YCbCr& p0, const YCbCr& p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' p0'
    - ' p1'
    - ' p2'
    - ' p3'
    argTypes:
    - YCbCr
    - YCbCr
    - YCbCr
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: rawspeed::interpolateCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void interpolateCbCr(const YCbCr& p0, const YCbCr& p1, const YCbCr&
      p2,\n                       const YCbCr& p3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:108,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:115,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:115,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:117,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:119,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:124,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:146,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:151,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:151,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:153,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:156,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:158,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:160,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:163,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:166,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:175,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:177,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:178,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_422_row
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - std::array::size
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - rawspeed::CopyCbCr
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - YUV_TO_RGB<version>
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_422_row(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:184,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:185,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:185,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:186,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:186,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:190,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422_row
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_422
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::Cr2sRawInterpolator::interpolate_422_row
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - Array2DRef::width
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_422()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:195,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:206,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:206,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:208,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:217,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:218,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:223,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:225,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:232,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:233,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:241,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:241,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:281,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:289,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:294,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:297,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:300,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:303,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:316,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:319,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:336,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:339,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:341,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:344,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:346,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 347
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_420_row
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - height
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - rawspeed::CopyCbCr
    - YUV_TO_RGB<version>
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_420_row(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:350,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:361,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:361,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:362,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:363,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:372,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:373,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:378,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:380,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:387,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:388,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:402,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420_row
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:403,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:405,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:405,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:419,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:427,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:432,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:435,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:440,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:443,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:446,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:458,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:460,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:465,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:467,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 468
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_420
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - height
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - rawspeed::CopyCbCr
    - YUV_TO_RGB<version>
    - rawspeed::Cr2sRawInterpolator::interpolate_420_row
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_420()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:472,1
    - Dst: CroppedArray1DRef<uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:472,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:473,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:473,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:474,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:474,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:475,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - r
    - g
    - b
    argTypes:
    - CroppedArray1DRef<uint16_t>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: rawspeed::Cr2sRawInterpolator::STORE_RGB
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - invariant
    - out
    - CroppedArray1DRef<uint16_t>::size
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::STORE_RGB(CroppedArray1DRef<uint16_t> out,\n
      \                                          int r, int g, int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:512,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:518,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:521,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:524,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:527,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:533,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:536,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:539,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:542,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 544
    functionName: rawspeed::Cr2sRawInterpolator::interpolate
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - rawspeed::Cr2sRawInterpolator::interpolate_420
    - ThrowRDE
    - rawspeed::Cr2sRawInterpolator::interpolate_422
    - invariant
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate(int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:44,1
    - Dst: CroppedArray1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:44,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - in
    argTypes:
    - YCbCr*
    - CroppedArray1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: rawspeed::LoadY
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 3
    functionsReached:
    - CroppedArray1DRef<const uint16_t>::size
    - in
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void LoadY(YCbCr* p, const CroppedArray1DRef<const uint16_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:50,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:51,1
    - Dst: CroppedArray1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:51,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:53,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - in
    argTypes:
    - YCbCr*
    - CroppedArray1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: rawspeed::LoadCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 3
    functionsReached:
    - CroppedArray1DRef<const uint16_t>::size
    - in
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void LoadCbCr(YCbCr* p, const CroppedArray1DRef<const uint16_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - ' pSrc'
    argTypes:
    - YCbCr*
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: rawspeed::CopyCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void CopyCbCr(YCbCr* p, const YCbCr& pSrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::YCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void YCbCr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: rawspeed::signExtend
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signExtend()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hue_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: rawspeed::applyHue
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void applyHue(int hue_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::signExtend
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:77,1
    - Dst: rawspeed::applyHue
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hue_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: rawspeed::process
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::applyHue
    - rawspeed::signExtend
    linkageType: ''
    returnType: void
    signature: void process(int hue_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p0'
    - ' p2'
    argTypes:
    - YCbCr
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: rawspeed::interpolateCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void interpolateCbCr(const YCbCr& p0, const YCbCr& p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' p0'
    - ' p1'
    - ' p2'
    - ' p3'
    argTypes:
    - YCbCr
    - YCbCr
    - YCbCr
    - YCbCr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: rawspeed::interpolateCbCr
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void interpolateCbCr(const YCbCr& p0, const YCbCr& p1, const YCbCr&
      p2,\n                       const YCbCr& p3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:98,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:106,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:108,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:115,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:115,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:117,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:119,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:124,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:146,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:151,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:151,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:153,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:156,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:158,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:160,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:163,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:166,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:175,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:177,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:178,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_422_row
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - std::array::size
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - rawspeed::CopyCbCr
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - YUV_TO_RGB<version>
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_422_row(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:184,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:185,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:185,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:186,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:186,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:190,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422_row
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_422
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef::height
    - rawspeed::Cr2sRawInterpolator::interpolate_422_row
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - Array2DRef::width
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_422()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:195,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:206,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:206,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:208,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:217,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:218,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:223,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:225,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:232,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:233,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:241,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:241,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:281,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:289,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:294,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:297,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:300,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:303,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:316,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:319,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:336,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:339,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:341,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:344,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:346,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 347
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_420_row
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - height
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - rawspeed::CopyCbCr
    - YUV_TO_RGB<version>
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_420_row(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:350,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:361,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:361,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:362,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:363,1
    - Dst: rawspeed::LoadY
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:372,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:373,1
    - Dst: rawspeed::LoadCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:378,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:380,1
    - Dst: YUV_TO_RGB<version>
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:387,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:388,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:402,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420_row
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:403,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:405,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:405,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:419,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:427,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:432,1
    - Dst: interpolateCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:435,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:440,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:443,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:446,1
    - Dst: LoadMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:458,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:460,1
    - Dst: rawspeed::CopyCbCr
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:465,1
    - Dst: StoreMCU
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:467,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 468
    functionName: rawspeed::Cr2sRawInterpolator::interpolate_420
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 1
    functionsReached:
    - StoreMCU
    - rawspeed::LoadCbCr
    - LoadMCU
    - getCrop
    - rawspeed::LoadY
    - height
    - width
    - getU16DataAsUncroppedArray2DRef
    - process
    - invariant
    - interpolateCbCr
    - rawspeed::CopyCbCr
    - YUV_TO_RGB<version>
    - rawspeed::Cr2sRawInterpolator::interpolate_420_row
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate_420()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:472,1
    - Dst: CroppedArray1DRef<uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:472,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:473,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:473,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:474,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:474,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:475,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - r
    - g
    - b
    argTypes:
    - CroppedArray1DRef<uint16_t>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: rawspeed::Cr2sRawInterpolator::STORE_RGB
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - invariant
    - out
    - CroppedArray1DRef<uint16_t>::size
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::STORE_RGB(CroppedArray1DRef<uint16_t> out,\n
      \                                          int r, int g, int b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_RGB
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - out
    argTypes:
    - YCbCr
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: "Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - STORE_RGB
    linkageType: ''
    returnType: void
    signature: "void Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
      out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:512,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:518,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:521,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_422
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:524,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:527,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:533,1
    - Dst: rawspeed::Cr2sRawInterpolator::interpolate_420
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:536,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:539,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp:542,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 544
    functionName: rawspeed::Cr2sRawInterpolator::interpolate
    functionSourceFile: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    - rawspeed::Cr2sRawInterpolator::interpolate_420
    - ThrowRDE
    - rawspeed::Cr2sRawInterpolator::interpolate_422
    - invariant
    linkageType: ''
    returnType: void
    signature: void Cr2sRawInterpolator::interpolate(int version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:44,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:44,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:49,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:54,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:60,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:63,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: rawspeed::PanasonicV7Decompressor::PanasonicV7Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV7Decompressor::PanasonicV7Decompressor(RawImage img,\n
      \                                                ByteStream input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:70,1
    - Dst: CroppedArray1DRef<uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:70,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:71,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - block
    - out
    argTypes:
    - ByteStream
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: rawspeed::PanasonicV7Decompressor::decompressBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB::getBits
    - CroppedArray1DRef<uint16_t>::size
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV7Decompressor::decompressBlock(\n    ByteStream block,
      CroppedArray1DRef<uint16_t> out) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:80,1
    - Dst: Array1DRef::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:80,1
    - Dst: Array1DRef::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:81,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:84,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:86,1
    - Dst: rawspeed::PanasonicV7Decompressor::decompressBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:87,1
    - Dst: Array1DRef::getBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: rawspeed::PanasonicV7Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef::size
    - ByteStream::getStream
    - rawspeed::PanasonicV7Decompressor::decompressBlock
    - getSubStream
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - Array1DRef::getBlock
    linkageType: ''
    returnType: void
    signature: void PanasonicV7Decompressor::decompressRow(int row) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV7Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:98,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: rawspeed::PanasonicV7Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV7Decompressor::decompressRow
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV7Decompressor::decompress() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:44,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:44,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:49,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:54,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:60,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:63,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: rawspeed::PanasonicV7Decompressor::PanasonicV7Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV7Decompressor::PanasonicV7Decompressor(RawImage img,\n
      \                                                ByteStream input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:70,1
    - Dst: CroppedArray1DRef<uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:70,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:71,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - block
    - out
    argTypes:
    - ByteStream
    - CroppedArray1DRef<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: rawspeed::PanasonicV7Decompressor::decompressBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 1
    functionsReached:
    - BitStreamerLSB::getBits
    - CroppedArray1DRef<uint16_t>::size
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV7Decompressor::decompressBlock(\n    ByteStream block,
      CroppedArray1DRef<uint16_t> out) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:80,1
    - Dst: Array1DRef::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:80,1
    - Dst: Array1DRef::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:81,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:84,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:86,1
    - Dst: rawspeed::PanasonicV7Decompressor::decompressBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:87,1
    - Dst: Array1DRef::getBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: rawspeed::PanasonicV7Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 1
    functionsReached:
    - Array1DRef::size
    - ByteStream::getStream
    - rawspeed::PanasonicV7Decompressor::decompressBlock
    - getSubStream
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - Array1DRef::getBlock
    linkageType: ''
    returnType: void
    signature: void PanasonicV7Decompressor::decompressRow(int row) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV7Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:98,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: rawspeed::PanasonicV7Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV7Decompressor::decompressRow
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV7Decompressor::decompress() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:40,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:41,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:41,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:42,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:43,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: rawspeed::SonyArw1Decompressor::SonyArw1Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void SonyArw1Decompressor::SonyArw1Decompressor(RawImage img)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:55,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' bs'
    - len
    argTypes:
    - BitStreamerMSB
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: rawspeed::SonyArw1Decompressor::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - getBitsNoFill
    linkageType: ''
    returnType: int
    signature: int SonyArw1Decompressor::getDiff(BitStreamerMSB& bs, uint32_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:61,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:61,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:62,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:62,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:63,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:63,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:65,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:67,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:68,1
    - Dst: BitStreamerMSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:69,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:71,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:74,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:76,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:80,1
    - Dst: rawspeed::SonyArw1Decompressor::getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:83,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:87,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:89,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: rawspeed::SonyArw1Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::SonyArw1Decompressor::getDiff
    - BitStreamerMSB::fill
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - BitStreamerMSB::getBitsNoFill
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SonyArw1Decompressor::decompress(ByteStream input) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:40,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:41,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:41,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:42,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:43,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: rawspeed::SonyArw1Decompressor::SonyArw1Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void SonyArw1Decompressor::SonyArw1Decompressor(RawImage img)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:55,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' bs'
    - len
    argTypes:
    - BitStreamerMSB
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: rawspeed::SonyArw1Decompressor::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - getBitsNoFill
    linkageType: ''
    returnType: int
    signature: int SonyArw1Decompressor::getDiff(BitStreamerMSB& bs, uint32_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:61,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:61,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:62,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:62,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:63,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:63,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:65,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:67,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:68,1
    - Dst: BitStreamerMSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:69,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:71,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:74,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:76,1
    - Dst: BitStreamerMSB::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:80,1
    - Dst: rawspeed::SonyArw1Decompressor::getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:83,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:87,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:89,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: rawspeed::SonyArw1Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::SonyArw1Decompressor::getDiff
    - BitStreamerMSB::fill
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - BitStreamerMSB::getBitsNoFill
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SonyArw1Decompressor::decompress(ByteStream input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: rawspeed::HasselbladLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool erratumImplicitEOIMarkerAfterScan() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: rawspeed::HasselbladLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool erratumImplicitEOIMarkerAfterScan() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:58,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:58,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:59,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:59,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:61,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:61,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:62,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:66,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:66,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:67,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:68,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:68,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:69,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:69,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ' dim_'
    - tileW_
    - tileH_
    argTypes:
    - iPoint2D
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: rawspeed::DngTilingDescription
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - area
    - roundUpDivisionSafe
    - static_cast<unsigned>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void DngTilingDescription(const iPoint2D& dim_, uint32_t tileW_, uint32_t
      tileH_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(const DngSliceElement&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(DngSliceElement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(const DngSliceElement&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngSliceElement
    signature: DngSliceElement & operator=(const DngSliceElement&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(DngSliceElement&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngSliceElement
    signature: DngSliceElement & operator=(DngSliceElement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:111,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:112,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:112,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:113,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:114,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:115,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:115,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:116,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:116,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:117,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:118,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:119,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:119,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:120,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:120,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:121,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:123,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' dsc_'
    - n_
    - bs_
    argTypes:
    - DngTilingDescription
    - unsigned
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - getRemainSize
    - static_cast<unsigned>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(const DngTilingDescription& dsc_, unsigned n_,
      ByteStream bs_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - img
    - ' dsc_'
    - compression_
    - mFixLjpeg_
    - mBps_
    - mPredictor_
    argTypes:
    - RawImage
    - DngTilingDescription
    - int
    - bool
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: rawspeed::AbstractDngDecompressor::AbstractDngDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void AbstractDngDecompressor(RawImage img, const DngTilingDescription&
      dsc_,\n                          int compression_, bool mFixLjpeg_, uint32_t
      mBps_,\n                          uint32_t mPredictor_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:58,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:58,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:59,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:59,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:61,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:61,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:62,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:63,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:64,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:65,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:66,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:66,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:67,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:68,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:68,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:69,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:69,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ' dim_'
    - tileW_
    - tileH_
    argTypes:
    - iPoint2D
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: rawspeed::DngTilingDescription
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - area
    - roundUpDivisionSafe
    - static_cast<unsigned>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void DngTilingDescription(const iPoint2D& dim_, uint32_t tileW_, uint32_t
      tileH_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(const DngSliceElement&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(DngSliceElement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(const DngSliceElement&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngSliceElement
    signature: DngSliceElement & operator=(const DngSliceElement&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(DngSliceElement&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DngSliceElement
    signature: DngSliceElement & operator=(DngSliceElement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:111,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:112,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:112,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:113,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:114,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:115,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:115,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:116,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:116,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:117,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:118,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:119,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:119,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:120,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:120,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:121,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:122,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:123,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' dsc_'
    - n_
    - bs_
    argTypes:
    - DngTilingDescription
    - unsigned
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: rawspeed::DngSliceElement
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - getRemainSize
    - static_cast<unsigned>
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void DngSliceElement(const DngTilingDescription& dsc_, unsigned n_,
      ByteStream bs_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - img
    - ' dsc_'
    - compression_
    - mFixLjpeg_
    - mBps_
    - mPredictor_
    argTypes:
    - RawImage
    - DngTilingDescription
    - int
    - bool
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: rawspeed::AbstractDngDecompressor::AbstractDngDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void AbstractDngDecompressor(RawImage img, const DngTilingDescription&
      dsc_,\n                          int compression_, bool mFixLjpeg_, uint32_t
      mBps_,\n                          uint32_t mPredictor_)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:57,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:61,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:62,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:63,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:63,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:65,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:65,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:66,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:66,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:67,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:68,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:68,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:70,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:71,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:97,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:99,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: mcu::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:108,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:111,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:112,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:116,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:118,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:119,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:120,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:121,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:122,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:124,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:124,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:126,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:129,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:132,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:135,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:135,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:138,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:143,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 49
    argCount: 6
    argNames:
    - img
    - imgFrame_
    - frame_
    - rec_
    - numLJpegRowsPerRestartInterval_
    - input_
    argTypes:
    - RawImage
    - iRectangle2D
    - Frame
    - std::vector<PerComponentRecipe>
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 152
    functionName: rawspeed::LJpegDecompressor::LJpegDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::numeric_limits<int>::max
    - dim::hasPositiveArea
    - static_cast<int64_t>
    - std::move
    - size
    - implicit_cast<int>
    - ht::isFullDecode
    - ThrowRDE
    - getDataType
    - getCpp
    - mcu::area
    - roundUpDivisionSafe
    - static_cast<int>
    - static_cast<unsigned>
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void LJpegDecompressor::LJpegDecompressor(RawImage img, iRectangle2D
      imgFrame_,\n                                     Frame frame_,\n                                     std::vector<PerComponentRecipe>
      rec_,\n                                     int numLJpegRowsPerRestartInterval_,\n
      \                                    Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::cref
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::cref
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    signature: "std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
      LJpegDecompressor::getPrefixCodeDecodersImpl(\n    std::index_sequence<I...>
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed::LJpegDecompressor::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    signature: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
      LJpegDecompressor::getPrefixCodeDecoders() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:171,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: rawspeed::LJpegDecompressor::getInitialPreds
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - end
    - begin
    - std::array::begin
    linkageType: ''
    returnType: std::array<uint16_t, N_COMP>
    signature: std::array<uint16_t, N_COMP> LJpegDecompressor::getInitialPreds() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:189,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:189,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:190,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:190,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:191,1
    - Dst: Array2DRef<uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:191,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:192,1
    - Dst: Array2DRef<const uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:192,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:193,1
    - Dst: Array2DRef<const uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:193,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:201,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:210,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:211,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:211,1
    - Dst: outTile
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:214,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:225,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:226,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:227,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:233,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:234,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:234,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:239,1
    - Dst: outStripe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:240,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:249,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - outStripe
    - pred
    - ht
    - ' bs'
    argTypes:
    - Array2DRef<uint16_t>
    - Array2DRef<const uint16_t>
    - std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    - BitStreamerJPEG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 251
    functionName: rawspeed::LJpegDecompressor::decodeRowN
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef<const uint16_t>::width
    - Array2DRef<const uint16_t>::height
    - area
    - pred
    - outTile
    - invariant
    - decodeDifference
    - CroppedArray2DRef
    - Array2DRef<uint16_t>::height
    - outStripe
    - Array2DRef<uint16_t>::width
    - static_cast<const PrefixCodeDecoder<>&>
    linkageType: ''
    returnType: void
    signature: "void LJpegDecompressor::decodeRowN(\n    Array2DRef<uint16_t> outStripe,
      Array2DRef<const uint16_t> pred,\n    std::array<std::reference_wrapper<const
      PrefixCodeDecoder<>>, N_COMP> ht,\n    BitStreamerJPEG& bs) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:256,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:258,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:258,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:262,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:262,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:265,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:265,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:266,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:267,1
    - Dst: rawspeed::LJpegDecompressor::getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:270,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:276,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:277,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:277,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:279,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:280,1
    - Dst: rawspeed::LJpegDecompressor::getInitialPreds
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:285,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:286,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:286,1
    - Dst: peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:289,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:291,1
    - Dst: getRestartMarkerNumber
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:292,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:294,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:296,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:297,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:300,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:308,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:309,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:313,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:317,1
    - Dst: auto::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:320,1
    - Dst: rawspeed::LJpegDecompressor::decodeRowN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:324,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:327,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:335,1
    - Dst: BitStreamerJPEG::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:335,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 339
    functionName: rawspeed::LJpegDecompressor::decodeN
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerJPEG::getStreamPosition
    - rawspeed::LJpegDecompressor::getPrefixCodeDecoders
    - roundUpDivisionSafe
    - getCpp
    - hasPositiveArea
    - ByteStream::getPosition
    - implicit_cast<int>
    - getRestartMarkerNumber
    - ByteStream::skipBytes
    - getU16DataAsUncroppedArray2DRef
    - CroppedArray2DRef
    - auto::width
    - ThrowRDE
    - auto::data
    - rawspeed::LJpegDecompressor::getInitialPreds
    - ByteStream::peekRemainingBuffer
    - rawspeed::LJpegDecompressor::decodeRowN
    - Array2DRef
    - invariant
    - peekMarker
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type LJpegDecompressor::decodeN() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mcu::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:342,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:345,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:350,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:355,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:360,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:363,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:367,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 370
    functionName: rawspeed::LJpegDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::LJpegDecompressor::decodeN
    - mcu::area
    - __builtin_unreachable
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type LJpegDecompressor::decode() const
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:57,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:61,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:62,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:63,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:63,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:65,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:65,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:66,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:66,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:67,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:68,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:68,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:70,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:71,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:73,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:97,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:99,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:105,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: mcu::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:108,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:111,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:112,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:116,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:118,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:119,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:120,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:121,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:122,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:124,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:124,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:126,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:129,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:132,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:135,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:135,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:138,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:143,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 49
    argCount: 6
    argNames:
    - img
    - imgFrame_
    - frame_
    - rec_
    - numLJpegRowsPerRestartInterval_
    - input_
    argTypes:
    - RawImage
    - iRectangle2D
    - Frame
    - std::vector<PerComponentRecipe>
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 152
    functionName: rawspeed::LJpegDecompressor::LJpegDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::numeric_limits<int>::max
    - dim::hasPositiveArea
    - static_cast<int64_t>
    - std::move
    - size
    - implicit_cast<int>
    - ht::isFullDecode
    - ThrowRDE
    - getDataType
    - getCpp
    - mcu::area
    - roundUpDivisionSafe
    - static_cast<int>
    - static_cast<unsigned>
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void LJpegDecompressor::LJpegDecompressor(RawImage img, iRectangle2D
      imgFrame_,\n                                     Frame frame_,\n                                     std::vector<PerComponentRecipe>
      rec_,\n                                     int numLJpegRowsPerRestartInterval_,\n
      \                                    Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::cref
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 1
    functionsReached:
    - std::cref
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    signature: "std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
      LJpegDecompressor::getPrefixCodeDecodersImpl(\n    std::index_sequence<I...>
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: rawspeed::LJpegDecompressor::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    signature: std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
      LJpegDecompressor::getPrefixCodeDecoders() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:171,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: rawspeed::LJpegDecompressor::getInitialPreds
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 1
    functionsReached:
    - std::transform
    - end
    - begin
    - std::array::begin
    linkageType: ''
    returnType: std::array<uint16_t, N_COMP>
    signature: std::array<uint16_t, N_COMP> LJpegDecompressor::getInitialPreds() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:189,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:189,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:190,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:190,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:191,1
    - Dst: Array2DRef<uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:191,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:192,1
    - Dst: Array2DRef<const uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:192,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:193,1
    - Dst: Array2DRef<const uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:193,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:201,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:210,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:211,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:211,1
    - Dst: outTile
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:214,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:225,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:226,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:227,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:233,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:234,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:234,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:239,1
    - Dst: outStripe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:240,1
    - Dst: static_cast<const PrefixCodeDecoder<>&>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:249,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - outStripe
    - pred
    - ht
    - ' bs'
    argTypes:
    - Array2DRef<uint16_t>
    - Array2DRef<const uint16_t>
    - std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP>
    - BitStreamerJPEG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 251
    functionName: rawspeed::LJpegDecompressor::decodeRowN
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef<const uint16_t>::width
    - Array2DRef<const uint16_t>::height
    - area
    - pred
    - outTile
    - invariant
    - decodeDifference
    - CroppedArray2DRef
    - Array2DRef<uint16_t>::height
    - outStripe
    - Array2DRef<uint16_t>::width
    - static_cast<const PrefixCodeDecoder<>&>
    linkageType: ''
    returnType: void
    signature: "void LJpegDecompressor::decodeRowN(\n    Array2DRef<uint16_t> outStripe,
      Array2DRef<const uint16_t> pred,\n    std::array<std::reference_wrapper<const
      PrefixCodeDecoder<>>, N_COMP> ht,\n    BitStreamerJPEG& bs) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:256,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:258,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:258,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:262,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:262,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:265,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:265,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:266,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:267,1
    - Dst: rawspeed::LJpegDecompressor::getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:270,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:276,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:277,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:277,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:279,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:280,1
    - Dst: rawspeed::LJpegDecompressor::getInitialPreds
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:285,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:286,1
    - Dst: auto::data
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:286,1
    - Dst: peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:289,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:291,1
    - Dst: getRestartMarkerNumber
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:292,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:294,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:296,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:297,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:300,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:308,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:309,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:313,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:317,1
    - Dst: auto::width
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:320,1
    - Dst: rawspeed::LJpegDecompressor::decodeRowN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:324,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:327,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:335,1
    - Dst: BitStreamerJPEG::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:335,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 339
    functionName: rawspeed::LJpegDecompressor::decodeN
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 1
    functionsReached:
    - BitStreamerJPEG::getStreamPosition
    - rawspeed::LJpegDecompressor::getPrefixCodeDecoders
    - roundUpDivisionSafe
    - getCpp
    - hasPositiveArea
    - ByteStream::getPosition
    - implicit_cast<int>
    - getRestartMarkerNumber
    - ByteStream::skipBytes
    - getU16DataAsUncroppedArray2DRef
    - CroppedArray2DRef
    - auto::width
    - ThrowRDE
    - auto::data
    - rawspeed::LJpegDecompressor::getInitialPreds
    - ByteStream::peekRemainingBuffer
    - rawspeed::LJpegDecompressor::decodeRowN
    - Array2DRef
    - invariant
    - peekMarker
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type LJpegDecompressor::decodeN() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mcu::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:342,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:345,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:350,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:355,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:360,1
    - Dst: rawspeed::LJpegDecompressor::decodeN
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:363,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:367,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 370
    functionName: rawspeed::LJpegDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::LJpegDecompressor::decodeN
    - mcu::area
    - __builtin_unreachable
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type LJpegDecompressor::decode() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:53,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:55,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:55,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:56,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:57,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:59,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:65,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:69,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:69,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:70,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:71,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:78,1
    - Dst: std::numeric_limits<ByteStream::size_type>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:81,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:83,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:83,1
    - Dst: rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - img
    - input_
    - zero_is_not_bad
    - section_split_offset_
    argTypes:
    - RawImage
    - ByteStream
    - bool
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: rawspeed::PanasonicV4Decompressor::PanasonicV4Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
    - std::move
    - std::numeric_limits<ByteStream::size_type>::max
    - roundUp
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::PanasonicV4Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 bool
      zero_is_not_bad,\n                                                 uint32_t
      section_split_offset_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:90,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:95,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:95,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:96,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:97,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:97,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:98,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:98,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:99,1
    - Dst: std::numeric_limits<size_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:99,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:100,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:100,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:103,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:105,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:105,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:106,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:108,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:110,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:112,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:114,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:115,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:117,1
    - Dst: rawspeed::PanasonicV4Decompressor::Block
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:120,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:121,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:121,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:122,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:122,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:125,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (blocksTotal <= std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (currPixel >= mRaw->dim.area())
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (input.getRemainSize() == 0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (blocksTotal <= std::numeric_limits<size_t>::max())
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (blocks.size() == blocksTotal)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 127
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 127
    functionName: rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 1
    functionsReached:
    - dim::area
    - rawspeed::PanasonicV4Decompressor::Block
    - reserve
    - getRemainSize
    - size
    - back
    - std::numeric_limits<size_t>::max
    - implicit_cast<size_t>
    - assert
    - roundUpDivisionSafe
    - invariant
    - std::numeric_limits<uint32_t>::max
    - std::back_inserter
    - pixelToCoordinate
    - iPoint2D
    - std::min
    - std::generate_n
    - getStream
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::chopInputIntoBlocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:137,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:137,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:138,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:138,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:139,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:141,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:142,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:142,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:146,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:153,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:153,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buf.empty())
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - empty
    - reserve
    - getRemainSize
    - emplace_back
    - end
    - assert
    - Buffer::end
    - getBuffer
    - invariant
    - insert
    linkageType: ''
    returnType: void
    signature: void parseBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block_
    - section_split_offset_
    argTypes:
    - ByteStream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::ProxyStream
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
    linkageType: ''
    returnType: void
    signature: void ProxyStream(ByteStream block_, int section_split_offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBits(int nbits) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:176,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:181,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:184,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:193,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:193,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:198,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:206,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:208,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:211,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:211,1
    - Dst: std::vector<uint32_t>*::push_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ' bits'
    - row
    - col
    - zero_pos
    argTypes:
    - ProxyStream
    - int
    - int
    - std::vector<uint32_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 218
    functionName: rawspeed::PanasonicV4Decompressor::processPixelPacket
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<uint16_t>
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - std::vector<uint32_t>*::push_back
    - extractHighBits
    - out
    - getBits
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::processPixelPacket(\n    ProxyStream&
      bits, int row, int col,\n    std::vector<uint32_t>* zero_pos) const noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:235,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:236,1
    - Dst: rawspeed::PanasonicV4Decompressor::processPixelPacket
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' block'
    - zero_pos
    argTypes:
    - Block
    - std::vector<uint32_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: rawspeed::PanasonicV4Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV4Decompressor::processPixelPacket
    - invariant
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::processBlock(\n    const Block& block,
      std::vector<uint32_t>* zero_pos) const noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:246,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:246,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: rawspeed::PanasonicV4Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:254,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:257,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:261,1
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:263,1
    - Dst: mBadPixelPositions::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:263,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:264,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!blocks.empty())
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: rawspeed::PanasonicV4Decompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - empty
    - data
    - Array1DRef
    - size
    - std::vector::begin
    - implicit_cast<int>
    - mBadPixelPositions::insert
    - __builtin_unreachable
    - mBadPixelPositions::end
    - assert
    - std::vector::end
    - std::vector::empty
    - rawspeed::PanasonicV4Decompressor::processBlock
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::decompressThread() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:269,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:269,1
    - Dst: rawspeed::PanasonicV4Decompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!blocks.empty())
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: rawspeed::PanasonicV4Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::PanasonicV4Decompressor::decompressThread
    - empty
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::decompress() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:53,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:55,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:55,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:56,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:57,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:59,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:65,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:69,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:69,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:70,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:71,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:78,1
    - Dst: std::numeric_limits<ByteStream::size_type>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:81,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:83,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:83,1
    - Dst: rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - img
    - input_
    - zero_is_not_bad
    - section_split_offset_
    argTypes:
    - RawImage
    - ByteStream
    - bool
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: rawspeed::PanasonicV4Decompressor::PanasonicV4Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
    - std::move
    - std::numeric_limits<ByteStream::size_type>::max
    - roundUp
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::PanasonicV4Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 bool
      zero_is_not_bad,\n                                                 uint32_t
      section_split_offset_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:90,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:95,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:95,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:96,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:97,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:97,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:98,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:98,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:99,1
    - Dst: std::numeric_limits<size_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:99,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:100,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:100,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:103,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:104,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:105,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:105,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:106,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:106,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:107,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:108,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:110,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:112,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:114,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:115,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:117,1
    - Dst: rawspeed::PanasonicV4Decompressor::Block
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:120,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:121,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:121,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:122,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:122,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:125,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (blocksTotal <= std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (currPixel >= mRaw->dim.area())
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (input.getRemainSize() == 0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (blocksTotal <= std::numeric_limits<size_t>::max())
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    - condition: (blocks.size() == blocksTotal)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 127
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 127
    functionName: rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 2
    functionsReached:
    - dim::area
    - rawspeed::PanasonicV4Decompressor::Block
    - reserve
    - getRemainSize
    - size
    - back
    - std::numeric_limits<size_t>::max
    - implicit_cast<size_t>
    - assert
    - roundUpDivisionSafe
    - invariant
    - std::numeric_limits<uint32_t>::max
    - std::back_inserter
    - pixelToCoordinate
    - iPoint2D
    - std::min
    - std::generate_n
    - getStream
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::chopInputIntoBlocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:137,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:137,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:138,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:138,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:139,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:141,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:142,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:142,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:146,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:149,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:151,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:153,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:153,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buf.empty())
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 1
    functionsReached:
    - Buffer::begin
    - empty
    - reserve
    - getRemainSize
    - emplace_back
    - end
    - assert
    - Buffer::end
    - getBuffer
    - invariant
    - insert
    linkageType: ''
    returnType: void
    signature: void parseBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block_
    - section_split_offset_
    argTypes:
    - ByteStream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::ProxyStream
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
    linkageType: ''
    returnType: void
    signature: void ProxyStream(ByteStream block_, int section_split_offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: rawspeed::PanasonicV4Decompressor::ProxyStream::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getBits(int nbits) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:176,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:181,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:184,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:193,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:193,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:198,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:206,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:208,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:211,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:211,1
    - Dst: std::vector<uint32_t>*::push_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ' bits'
    - row
    - col
    - zero_pos
    argTypes:
    - ProxyStream
    - int
    - int
    - std::vector<uint32_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 218
    functionName: rawspeed::PanasonicV4Decompressor::processPixelPacket
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 1
    functionsReached:
    - implicit_cast<uint16_t>
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - std::vector<uint32_t>*::push_back
    - extractHighBits
    - out
    - getBits
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::processPixelPacket(\n    ProxyStream&
      bits, int row, int col,\n    std::vector<uint32_t>* zero_pos) const noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:235,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:236,1
    - Dst: rawspeed::PanasonicV4Decompressor::processPixelPacket
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' block'
    - zero_pos
    argTypes:
    - Block
    - std::vector<uint32_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: rawspeed::PanasonicV4Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PanasonicV4Decompressor::processPixelPacket
    - invariant
    linkageType: ''
    returnType: void
    signature: "void PanasonicV4Decompressor::processBlock(\n    const Block& block,
      std::vector<uint32_t>* zero_pos) const noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:246,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:246,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:252,1
    - Dst: rawspeed::PanasonicV4Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:254,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:257,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:261,1
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:263,1
    - Dst: mBadPixelPositions::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:263,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:264,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!blocks.empty())
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: rawspeed::PanasonicV4Decompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 1
    functionsReached:
    - empty
    - data
    - Array1DRef
    - size
    - std::vector::begin
    - implicit_cast<int>
    - mBadPixelPositions::insert
    - __builtin_unreachable
    - mBadPixelPositions::end
    - assert
    - std::vector::end
    - std::vector::empty
    - rawspeed::PanasonicV4Decompressor::processBlock
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::decompressThread() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:269,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:269,1
    - Dst: rawspeed::PanasonicV4Decompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!blocks.empty())
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: rawspeed::PanasonicV4Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rawspeed::PanasonicV4Decompressor::decompressThread
    - empty
    linkageType: ''
    returnType: void
    signature: void PanasonicV4Decompressor::decompress() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:45,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:45,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:47,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:49,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:50,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:50,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:52,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:54,1
    - Dst: rawspeed::PhaseOneDecompressor::prepareStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - img
    - ' strips_'
    argTypes:
    - RawImage
    - std::vector<PhaseOneStrip>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: rawspeed::PhaseOneDecompressor::PhaseOneDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - rawspeed::PhaseOneDecompressor::prepareStrips
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void PhaseOneDecompressor::PhaseOneDecompressor(RawImage img,\n                                           std::vector<PhaseOneStrip>&&
      strips_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:65,1
    - Dst: static_cast<decltype(strips)::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:66,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:67,1
    - Dst: std::sort
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:75,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:76,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:76,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:79,1
    - Dst: static_cast<decltype(strips)::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: rawspeed::PhaseOneDecompressor::prepareStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 1
    functionsReached:
    - size
    - end
    - begin
    - ThrowRDE
    - static_cast<decltype(strips)::size_type>
    - std::sort
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::prepareStrips()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:86,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:88,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:88,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:89,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:89,1
    - Dst: bs::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:94,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:97,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:100,1
    - Dst: BitStreamerMSB32::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:101,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:102,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:103,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:119,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:121,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:127,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:128,1
    - Dst: static_cast<signed>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:131,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:131,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - PhaseOneStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 136
    functionName: rawspeed::PhaseOneDecompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerMSB32::fill
    - bs::peekRemainingBuffer
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - BitStreamerMSB32::getBitsNoFill
    - out
    - static_cast<signed>
    - static_cast<unsigned>
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompressStrip(const PhaseOneStrip& strip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: rawspeed::PhaseOneDecompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:145,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:148,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:148,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: rawspeed::PhaseOneDecompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PhaseOneDecompressor::decompressStrip
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - what
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PhaseOneDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:161,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:164,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:165,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: rawspeed::PhaseOneDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - rawspeed::PhaseOneDecompressor::decompressThread
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompress() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:45,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:45,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:47,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:49,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:50,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:50,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:52,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:54,1
    - Dst: rawspeed::PhaseOneDecompressor::prepareStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - img
    - ' strips_'
    argTypes:
    - RawImage
    - std::vector<PhaseOneStrip>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: rawspeed::PhaseOneDecompressor::PhaseOneDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - rawspeed::PhaseOneDecompressor::prepareStrips
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void PhaseOneDecompressor::PhaseOneDecompressor(RawImage img,\n                                           std::vector<PhaseOneStrip>&&
      strips_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:65,1
    - Dst: static_cast<decltype(strips)::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:66,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:67,1
    - Dst: std::sort
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:75,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:76,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:76,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:79,1
    - Dst: static_cast<decltype(strips)::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: rawspeed::PhaseOneDecompressor::prepareStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 2
    functionsReached:
    - size
    - end
    - begin
    - ThrowRDE
    - static_cast<decltype(strips)::size_type>
    - std::sort
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::prepareStrips()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:86,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:88,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:88,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:89,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:89,1
    - Dst: bs::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:94,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:97,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:100,1
    - Dst: BitStreamerMSB32::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:101,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:102,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:103,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:112,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:119,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:121,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:127,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:128,1
    - Dst: static_cast<signed>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:131,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:131,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - PhaseOneStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 136
    functionName: rawspeed::PhaseOneDecompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 1
    functionsReached:
    - BitStreamerMSB32::fill
    - bs::peekRemainingBuffer
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - BitStreamerMSB32::getBitsNoFill
    - out
    - static_cast<signed>
    - static_cast<unsigned>
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompressStrip(const PhaseOneStrip& strip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:143,1
    - Dst: rawspeed::PhaseOneDecompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:145,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:148,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:148,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: rawspeed::PhaseOneDecompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PhaseOneDecompressor::decompressStrip
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - what
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PhaseOneDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:161,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:164,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:165,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: rawspeed::PhaseOneDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - rawspeed::PhaseOneDecompressor::decompressThread
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void PhaseOneDecompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' numLZ_'
    argTypes:
    - SimpleLUT<int8_t, 12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OlympusDifferenceDecoder(const SimpleLUT<int8_t, 12>& numLZ_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:63,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:70,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:72,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:80,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:83,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:86,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:87,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:88,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts:
    - condition: (numLowBits >= 2)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numLowBits <= 14)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits >= 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits <= 13)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: rawspeed::OlympusDifferenceDecoder::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - numActiveBits
    - std::max
    - assert
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: int
    signature: int OlympusDifferenceDecoder::getDiff(BitStreamerMSB& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl(RawImage img)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:133,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:134,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:135,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:141,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:143,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:145,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:146,1
    - Dst: getLeftUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:147,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - out
    - row
    - col
    argTypes:
    - Array2DRef<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: rawspeed::OlympusDecompressorImpl::getPred
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - std::signbit
    - getUp
    - getLeftUp
    - getLeft
    - out
    linkageType: ''
    returnType: int
    signature: "int OlympusDecompressorImpl::getPred(const Array2DRef<uint16_t> out,
      int row,\n                                 int col)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:171,1
    - Dst: getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:177,1
    - Dst: rawspeed::OlympusDecompressorImpl::getPred
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:178,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' acarry'
    - ' bits'
    - row
    - group
    argTypes:
    - std::array<OlympusDifferenceDecoder, 2>
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: rawspeed::OlympusDecompressorImpl::decompressGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::OlympusDecompressorImpl::getPred
    - getU16DataAsUncroppedArray2DRef
    - out
    - getDiff
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressGroup(\n    std::array<OlympusDifferenceDecoder,
      2>& acarry, BitStreamerMSB& bits,\n    int row, int group) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:186,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:193,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:197,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' bits'
    - row
    argTypes:
    - BitStreamerMSB
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: rawspeed::OlympusDecompressorImpl::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::width
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressGroup
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressRow(BitStreamerMSB& bits,\n
      \                                           int row) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:208,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:210,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: rawspeed::OlympusDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressRow
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl::decompress(ByteStream input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' numLZ_'
    argTypes:
    - SimpleLUT<int8_t, 12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OlympusDifferenceDecoder(const SimpleLUT<int8_t, 12>& numLZ_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:63,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:70,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:72,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:80,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:83,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:86,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:87,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:88,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts:
    - condition: (numLowBits >= 2)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numLowBits <= 14)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits >= 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits <= 13)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: rawspeed::OlympusDifferenceDecoder::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - numActiveBits
    - std::max
    - assert
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: int
    signature: int OlympusDifferenceDecoder::getDiff(BitStreamerMSB& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl(RawImage img)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:133,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:134,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:135,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:141,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:143,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:145,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:146,1
    - Dst: getLeftUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:147,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - out
    - row
    - col
    argTypes:
    - Array2DRef<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: rawspeed::OlympusDecompressorImpl::getPred
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 1
    functionsReached:
    - std::abs
    - std::signbit
    - getUp
    - getLeftUp
    - getLeft
    - out
    linkageType: ''
    returnType: int
    signature: "int OlympusDecompressorImpl::getPred(const Array2DRef<uint16_t> out,
      int row,\n                                 int col)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:171,1
    - Dst: getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:177,1
    - Dst: rawspeed::OlympusDecompressorImpl::getPred
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:178,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' acarry'
    - ' bits'
    - row
    - group
    argTypes:
    - std::array<OlympusDifferenceDecoder, 2>
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: rawspeed::OlympusDecompressorImpl::decompressGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::OlympusDecompressorImpl::getPred
    - getU16DataAsUncroppedArray2DRef
    - out
    - getDiff
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressGroup(\n    std::array<OlympusDifferenceDecoder,
      2>& acarry, BitStreamerMSB& bits,\n    int row, int group) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:186,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:193,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:197,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' bits'
    - row
    argTypes:
    - BitStreamerMSB
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: rawspeed::OlympusDecompressorImpl::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef::width
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressGroup
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressRow(BitStreamerMSB& bits,\n
      \                                           int row) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:208,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:210,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: rawspeed::OlympusDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressRow
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl::decompress(ByteStream input) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:218,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:219,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:219,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:221,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:223,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: rawspeed::OlympusDecompressor::OlympusDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressor::OlympusDecompressor(RawImage img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OlympusDecompressorImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: rawspeed::OlympusDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - OlympusDecompressorImpl
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressor::decompress(const ByteStream& input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' numLZ_'
    argTypes:
    - SimpleLUT<int8_t, 12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OlympusDifferenceDecoder(const SimpleLUT<int8_t, 12>& numLZ_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:63,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:70,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:72,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:80,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:83,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:86,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:87,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:88,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts:
    - condition: (numLowBits >= 2)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numLowBits <= 14)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits >= 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits <= 13)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: rawspeed::OlympusDifferenceDecoder::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - numActiveBits
    - std::max
    - assert
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: int
    signature: int OlympusDifferenceDecoder::getDiff(BitStreamerMSB& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl(RawImage img)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:133,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:134,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:135,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:141,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:143,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:145,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:146,1
    - Dst: getLeftUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:147,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - out
    - row
    - col
    argTypes:
    - Array2DRef<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: rawspeed::OlympusDecompressorImpl::getPred
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - std::signbit
    - getUp
    - getLeftUp
    - getLeft
    - out
    linkageType: ''
    returnType: int
    signature: "int OlympusDecompressorImpl::getPred(const Array2DRef<uint16_t> out,
      int row,\n                                 int col)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:171,1
    - Dst: getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:177,1
    - Dst: rawspeed::OlympusDecompressorImpl::getPred
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:178,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' acarry'
    - ' bits'
    - row
    - group
    argTypes:
    - std::array<OlympusDifferenceDecoder, 2>
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: rawspeed::OlympusDecompressorImpl::decompressGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::OlympusDecompressorImpl::getPred
    - getU16DataAsUncroppedArray2DRef
    - out
    - getDiff
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressGroup(\n    std::array<OlympusDifferenceDecoder,
      2>& acarry, BitStreamerMSB& bits,\n    int row, int group) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:186,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:193,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:197,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' bits'
    - row
    argTypes:
    - BitStreamerMSB
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: rawspeed::OlympusDecompressorImpl::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 2
    functionsReached:
    - Array2DRef::width
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressGroup
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressRow(BitStreamerMSB& bits,\n
      \                                           int row) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:208,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:210,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: rawspeed::OlympusDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressRow
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl::decompress(ByteStream input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' numLZ_'
    argTypes:
    - SimpleLUT<int8_t, 12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OlympusDifferenceDecoder(const SimpleLUT<int8_t, 12>& numLZ_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:63,1
    - Dst: numActiveBits
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:66,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:70,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:72,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:80,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:83,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:86,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:87,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:88,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts:
    - condition: (numLowBits >= 2)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numLowBits <= 14)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits >= 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    - condition: (numHighBits <= 13)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: rawspeed::OlympusDifferenceDecoder::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - numActiveBits
    - std::max
    - assert
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: int
    signature: int OlympusDifferenceDecoder::getDiff(BitStreamerMSB& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl(RawImage img)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:133,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:134,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:135,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:141,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:143,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:145,1
    - Dst: getUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:146,1
    - Dst: getLeftUp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:147,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::signbit
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:153,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:155,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - out
    - row
    - col
    argTypes:
    - Array2DRef<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: rawspeed::OlympusDecompressorImpl::getPred
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 3
    functionsReached:
    - std::abs
    - std::signbit
    - getUp
    - getLeftUp
    - getLeft
    - out
    linkageType: ''
    returnType: int
    signature: "int OlympusDecompressorImpl::getPred(const Array2DRef<uint16_t> out,
      int row,\n                                 int col)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:171,1
    - Dst: getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:177,1
    - Dst: rawspeed::OlympusDecompressorImpl::getPred
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:178,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' acarry'
    - ' bits'
    - row
    - group
    argTypes:
    - std::array<OlympusDifferenceDecoder, 2>
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: rawspeed::OlympusDecompressorImpl::decompressGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::OlympusDecompressorImpl::getPred
    - getU16DataAsUncroppedArray2DRef
    - out
    - getDiff
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressGroup(\n    std::array<OlympusDifferenceDecoder,
      2>& acarry, BitStreamerMSB& bits,\n    int row, int group) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:186,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:188,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:189,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:193,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:197,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' bits'
    - row
    argTypes:
    - BitStreamerMSB
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: rawspeed::OlympusDecompressorImpl::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 3
    functionsReached:
    - Array2DRef::width
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressGroup
    linkageType: ''
    returnType: void
    signature: "void OlympusDecompressorImpl::decompressRow(BitStreamerMSB& bits,\n
      \                                           int row) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:208,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:210,1
    - Dst: rawspeed::OlympusDecompressorImpl::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: rawspeed::OlympusDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - invariant
    - rawspeed::OlympusDecompressorImpl::decompressRow
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressorImpl::decompress(ByteStream input) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:218,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:219,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:219,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:221,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:223,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: rawspeed::OlympusDecompressor::OlympusDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressor::OlympusDecompressor(RawImage img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OlympusDecompressorImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: rawspeed::OlympusDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 0
    functionsReached:
    - OlympusDecompressorImpl
    linkageType: ''
    returnType: void
    signature: void OlympusDecompressor::decompress(const ByteStream& input) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:76,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:82,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:83,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:85,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:86,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: std::copy_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:90,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:94,1
    - Dst: rawspeed::bitreverse_each
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:95,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:97,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:102,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:103,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:105,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:107,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - rawspeed::implicit_cast
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - tmp
    - size
    - rawspeed::bitreverse_each
    - auto::begin
    - getCrop
    - std::array::data
    - ThrowIOE
    - Array1DRef<std::byte>
    - rawspeed::invariant
    - std::copy_n
    - auto::size
    - rawspeed::getPos
    linkageType: ''
    returnType: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes>
    signature: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' LUT'
    - bitStream
    argTypes:
    - Array1DRef<const DecoderLUTEntry>
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed::PanasonicV8Decompressor::InternalDecoder::InternalDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InternalDecoder(const Array1DRef<const DecoderLUTEntry>& LUT,\n
      \                 Array1DRef<const uint8_t> bitStream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rect
    - nextRect
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - iRectangle2D::getTopRight
    - iRectangle2D::getTopLeft
    - iRectangle2D::getBottomLeft
    - iPoint2D
    - iRectangle2D::getBottom
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: TileSequenceStatus
    signature: TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D rect,
      const iRectangle2D nextRect)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:171,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:172,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:176,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:179,1
    - Dst: Array1DRef<const iRectangle2D>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:180,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:181,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: rawspeed::evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:184,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:186,1
    - Dst: auto::getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:191,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:193,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:197,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: auto::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - imgSize
    - rects
    argTypes:
    - iPoint2D
    - Array1DRef<const iRectangle2D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 202
    functionName: rawspeed::isValidImageGrid
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - auto::getRight
    - rawspeed::evaluateConsecutiveTiles
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - ThrowRDE
    - iRectangle2D::getWidth
    - auto::getBottomRight
    - Array1DRef<const iRectangle2D>::size
    - iRectangle2D::getBottomRight
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::hasPositiveArea
    - rects
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void isValidImageGrid(iPoint2D imgSize, Array1DRef<const iRectangle2D>
      rects)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:209,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Optional<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: isSentinel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:212,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:214,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:216,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: cb
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mDecoderLUT
    - cb
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: rawspeed::bitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
    - isSentinel
    - cb
    - Optional<int>
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
    - std::accumulate
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: "int bitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT,\n    T cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:227,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rawspeed::minBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::min
    linkageType: ''
    returnType: int
    signature: "int minBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:233,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: rawspeed::maxBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::max
    linkageType: ''
    returnType: int
    signature: "int maxBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rect
    - nextRect
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 1
    functionsReached:
    - iRectangle2D::getTopRight
    - iRectangle2D::getTopLeft
    - iRectangle2D::getBottomLeft
    - iPoint2D
    - iRectangle2D::getBottom
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: TileSequenceStatus
    signature: TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D rect,
      const iRectangle2D nextRect)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:171,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:172,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:176,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:179,1
    - Dst: Array1DRef<const iRectangle2D>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:180,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:181,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: rawspeed::evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:184,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:186,1
    - Dst: auto::getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:191,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:193,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:197,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: auto::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - imgSize
    - rects
    argTypes:
    - iPoint2D
    - Array1DRef<const iRectangle2D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 202
    functionName: rawspeed::isValidImageGrid
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - auto::getRight
    - rawspeed::evaluateConsecutiveTiles
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - ThrowRDE
    - iRectangle2D::getWidth
    - auto::getBottomRight
    - Array1DRef<const iRectangle2D>::size
    - iRectangle2D::getBottomRight
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::hasPositiveArea
    - rects
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void isValidImageGrid(iPoint2D imgSize, Array1DRef<const iRectangle2D>
      rects)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:209,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Optional<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: isSentinel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:212,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:214,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:216,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: cb
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mDecoderLUT
    - cb
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: rawspeed::bitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 2
    functionsReached:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
    - isSentinel
    - cb
    - Optional<int>
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
    - std::accumulate
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: "int bitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT,\n    T cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:227,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rawspeed::minBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::min
    linkageType: ''
    returnType: int
    signature: "int minBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:233,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: rawspeed::maxBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::max
    linkageType: ''
    returnType: int
    signature: "int maxBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:246,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:254,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:257,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:259,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:260,1
    - Dst: isIntN<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:261,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:262,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:264,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:266,1
    - Dst: PanasonicV8Decompressor::DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:270,1
    - Dst: PanasonicV8Decompressor::DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:271,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:272,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:273,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:275,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:275,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:278,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (table.size() == numSymbols)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 294
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 294
    functionName: "PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n
      \   ByteStream stream)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - std::vector::emplace_back
    - isIntN<uint32_t>
    - std::vector::reserve
    - std::vector::size
    - ThrowRDE
    - assert
    - PanasonicV8Decompressor::DecoderLUTEntry
    - implicit_cast<uint8_t>
    - std::vector::resize
    linkageType: ''
    returnType: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
    signature: "std::vector<PanasonicV8Decompressor::DecoderLUTEntry> PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n
      \   ByteStream stream)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:301,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:302,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:304,1
    - Dst: Array1DRef<const uint32_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:305,1
    - Dst: Array1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:306,1
    - Dst: Array1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:306,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:309,1
    - Dst: stripWidths
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:314,1
    - Dst: stripHeights
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:315,1
    - Dst: stripLineOffsets
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:316,1
    - Dst: stripLineOffsets
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:317,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:319,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:319,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:320,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:321,1
    - Dst: auto::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:323,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:324,1
    - Dst: auto::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:326,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:329,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:331,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:333,1
    - Dst: isValidImageGrid
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:336,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:336,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - imgSize
    - stripLineOffsets
    - stripWidths
    - stripHeights
    argTypes:
    - iPoint2D
    - Array1DRef<const uint32_t>
    - Array1DRef<const uint16_t>
    - Array1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: "PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n
      \   iPoint2D imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const
      uint16_t> stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - isValidImageGrid
    - stripHeights
    - auto::isThisInside
    - Array1DRef<const uint32_t>::size
    - Array1DRef<const uint16_t>::size
    - stripLineOffsets
    - ThrowRDE
    - auto::hasPositiveArea
    - getAsArray1DRef
    - iRectangle2D
    - iPoint2D
    - stripWidths
    - iPoint2D::hasPositiveArea
    linkageType: ''
    returnType: std::vector<iRectangle2D>
    signature: "std::vector<iRectangle2D> PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n
      \   iPoint2D imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const
      uint16_t> stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:344,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:344,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:345,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:346,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:347,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:351,1
    - Dst: maxBitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:352,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:354,1
    - Dst: minBitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:356,1
    - Dst: mStrips::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:357,1
    - Dst: mStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:358,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:359,1
    - Dst: mOutRect
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:360,1
    - Dst: auto::dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:361,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - outputImg
    - mParams_
    argTypes:
    - RawImage
    - DecompressorParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 364
    functionName: rawspeed::PanasonicV8Decompressor::PanasonicV8Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - minBitsPerPixelNeeded
    - maxBitsPerPixelNeeded
    - std::move
    - auto::dim::area
    - mStrips
    - ThrowRDE
    - mStrips::size
    - getDataType
    - getCpp
    - mOutRect
    - auto::size
    linkageType: ''
    returnType: void
    signature: "void PanasonicV8Decompressor::PanasonicV8Decompressor(RawImage outputImg,\n
      \                                                DecompressorParams mParams_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mStrips::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:367,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:370,1
    - Dst: rawspeed_get_number_of_processor_cores
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:370,1
    - Dst: mStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:376,1
    - Dst: mOutRect
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:378,1
    - Dst: CroppedArray2DRef<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:380,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:381,1
    - Dst: rawspeed::PanasonicV8Decompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:390,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:393,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:393,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 399
    functionName: rawspeed::PanasonicV8Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - setError
    - rawspeed::PanasonicV8Decompressor::decompressStrip
    - mStrips
    - __builtin_unreachable
    - rawspeed_get_number_of_processor_cores
    - getU16DataAsUncroppedArray2DRef
    - mStrips::size
    - mOutRect
    - what
    - CroppedArray2DRef<uint16_t>
    - std::min
    linkageType: ''
    returnType: void
    signature: void PanasonicV8Decompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:404,1
    - Dst: Bayer2x2::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:404,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:406,1
    - Dst: Array2DRef<uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:406,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:407,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:407,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:411,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:411,1
    - Dst: TiledArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:413,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:414,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:417,1
    - Dst: auto::numCols
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:417,1
    - Dst: auto::numRows
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:418,1
    - Dst: rowGroups
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:419,1
    - Dst: TiledArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:421,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:428,1
    - Dst: auto::numRows
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:428,1
    - Dst: auto::numCols
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:429,1
    - Dst: outBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:430,1
    - Dst: InternalDecoder::decodeNextDiffValue
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:434,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:435,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:436,1
    - Dst: std::clamp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:436,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:437,1
    - Dst: outBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:438,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:438,1
    - Dst: outBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:445,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:448,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - out
    - decoder
    argTypes:
    - Array2DRef<uint16_t>
    - InternalDecoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 450
    functionName: rawspeed::PanasonicV8Decompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 1
    functionsReached:
    - auto::numRows
    - std::clamp
    - tmp
    - outBlocks
    - TiledArray2DRef
    - auto::numCols
    - InternalDecoder::decodeNextDiffValue
    - Array2DRef
    - pred
    - std::numeric_limits<uint16_t>::max
    - Bayer2x2::data
    - rowGroups
    - invariant
    - Array2DRef<uint16_t>::height
    - Array2DRef<uint16_t>::width
    - outBlock
    linkageType: ''
    returnType: void
    signature: "void PanasonicV8Decompressor::decompressStrip(const Array2DRef<uint16_t>
      out,\n                                              InternalDecoder decoder)
      const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:455,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:456,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:457,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:457,1
    - Dst: mLUT
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:458,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:460,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:468,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 470
    functionName: PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - size
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - invariant
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - mLUT
    linkageType: ''
    returnType: int32_t
    signature: int32_t PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::BitStreamCacheBase::establishClassInvariants
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:76,1
    - Dst: Array1DRef<std::byte>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:82,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:83,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:85,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:86,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: std::copy_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:90,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:94,1
    - Dst: rawspeed::bitreverse_each
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:95,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:97,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:102,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:103,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:105,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:107,1
    - Dst: rawspeed::getPos
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - rawspeed::implicit_cast
    - rawspeed::BitStreamCacheBase::establishClassInvariants
    - tmp
    - size
    - rawspeed::bitreverse_each
    - auto::begin
    - getCrop
    - std::array::data
    - ThrowIOE
    - Array1DRef<std::byte>
    - rawspeed::invariant
    - std::copy_n
    - auto::size
    - rawspeed::getPos
    linkageType: ''
    returnType: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes>
    signature: std::array<std::byte, BitStreamerTraits<Tag>::MaxProcessBytes> getInput()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' LUT'
    - bitStream
    argTypes:
    - Array1DRef<const DecoderLUTEntry>
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: rawspeed::PanasonicV8Decompressor::InternalDecoder::InternalDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InternalDecoder(const Array1DRef<const DecoderLUTEntry>& LUT,\n
      \                 Array1DRef<const uint8_t> bitStream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rect
    - nextRect
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 2
    functionsReached:
    - iRectangle2D::getTopRight
    - iRectangle2D::getTopLeft
    - iRectangle2D::getBottomLeft
    - iPoint2D
    - iRectangle2D::getBottom
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: TileSequenceStatus
    signature: TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D rect,
      const iRectangle2D nextRect)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:171,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:172,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:176,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:179,1
    - Dst: Array1DRef<const iRectangle2D>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:180,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:181,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: rawspeed::evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:184,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:186,1
    - Dst: auto::getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:191,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:193,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:197,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: auto::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - imgSize
    - rects
    argTypes:
    - iPoint2D
    - Array1DRef<const iRectangle2D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 202
    functionName: rawspeed::isValidImageGrid
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - auto::getRight
    - rawspeed::evaluateConsecutiveTiles
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - ThrowRDE
    - iRectangle2D::getWidth
    - auto::getBottomRight
    - Array1DRef<const iRectangle2D>::size
    - iRectangle2D::getBottomRight
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::hasPositiveArea
    - rects
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void isValidImageGrid(iPoint2D imgSize, Array1DRef<const iRectangle2D>
      rects)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:209,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Optional<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: isSentinel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:212,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:214,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:216,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: cb
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mDecoderLUT
    - cb
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: rawspeed::bitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 4
    functionsReached:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
    - isSentinel
    - cb
    - Optional<int>
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
    - std::accumulate
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: "int bitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT,\n    T cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:227,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rawspeed::minBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::min
    linkageType: ''
    returnType: int
    signature: "int minBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:233,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: rawspeed::maxBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::max
    linkageType: ''
    returnType: int
    signature: "int maxBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:161,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:162,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    - Dst: iRectangle2D::getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rect
    - nextRect
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 3
    functionsReached:
    - iRectangle2D::getTopRight
    - iRectangle2D::getTopLeft
    - iRectangle2D::getBottomLeft
    - iPoint2D
    - iRectangle2D::getBottom
    - iRectangle2D::getBottomRight
    linkageType: ''
    returnType: TileSequenceStatus
    signature: TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D rect,
      const iRectangle2D nextRect)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:171,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:172,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:176,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:177,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:178,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:179,1
    - Dst: Array1DRef<const iRectangle2D>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:180,1
    - Dst: rects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:181,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:182,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: iRectangle2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:183,1
    - Dst: rawspeed::evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:184,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:186,1
    - Dst: auto::getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:191,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:193,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:197,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: auto::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:200,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - imgSize
    - rects
    argTypes:
    - iPoint2D
    - Array1DRef<const iRectangle2D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 202
    functionName: rawspeed::isValidImageGrid
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - auto::getRight
    - rawspeed::evaluateConsecutiveTiles
    - iRectangle2D::isThisInside
    - iRectangle2D::getHeight
    - ThrowRDE
    - iRectangle2D::getWidth
    - auto::getBottomRight
    - Array1DRef<const iRectangle2D>::size
    - iRectangle2D::getBottomRight
    - iRectangle2D
    - iPoint2D
    - iRectangle2D::hasPositiveArea
    - rects
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void isValidImageGrid(iPoint2D imgSize, Array1DRef<const iRectangle2D>
      rects)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:208,1
    - Dst: std::accumulate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:209,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: Optional<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:210,1
    - Dst: isSentinel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:212,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:214,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:216,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: cb
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:217,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - mDecoderLUT
    - cb
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: rawspeed::bitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 6
    functionsReached:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::end
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::begin
    - isSentinel
    - cb
    - Optional<int>
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>::size
    - std::accumulate
    - has_value
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: "int bitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT,\n    T cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:227,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rawspeed::minBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::min
    linkageType: ''
    returnType: int
    signature: "int minBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::bitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:233,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mDecoderLUT
    argTypes:
    - Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: rawspeed::maxBitsPerPixelNeeded
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::bitsPerPixelNeeded
    - std::max
    linkageType: ''
    returnType: int
    signature: "int maxBitsPerPixelNeeded(\n    Array1DRef<const PanasonicV8Decompressor::DecoderLUTEntry>
      mDecoderLUT)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:246,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:254,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:257,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:259,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:260,1
    - Dst: isIntN<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:261,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:262,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:264,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:266,1
    - Dst: PanasonicV8Decompressor::DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:270,1
    - Dst: PanasonicV8Decompressor::DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:271,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:272,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:273,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:275,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:275,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:278,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (table.size() == numSymbols)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 294
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 294
    functionName: "PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n
      \   ByteStream stream)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - std::vector::emplace_back
    - isIntN<uint32_t>
    - std::vector::reserve
    - std::vector::size
    - ThrowRDE
    - assert
    - PanasonicV8Decompressor::DecoderLUTEntry
    - implicit_cast<uint8_t>
    - std::vector::resize
    linkageType: ''
    returnType: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
    signature: "std::vector<PanasonicV8Decompressor::DecoderLUTEntry> PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n
      \   ByteStream stream)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:301,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:302,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:304,1
    - Dst: Array1DRef<const uint32_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:305,1
    - Dst: Array1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:306,1
    - Dst: Array1DRef<const uint16_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:306,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:309,1
    - Dst: stripWidths
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:314,1
    - Dst: stripHeights
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:315,1
    - Dst: stripLineOffsets
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:316,1
    - Dst: stripLineOffsets
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:317,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:319,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:319,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:320,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:321,1
    - Dst: auto::isThisInside
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:323,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:324,1
    - Dst: auto::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:326,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:329,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:331,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:333,1
    - Dst: isValidImageGrid
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:336,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:336,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - imgSize
    - stripLineOffsets
    - stripWidths
    - stripHeights
    argTypes:
    - iPoint2D
    - Array1DRef<const uint32_t>
    - Array1DRef<const uint16_t>
    - Array1DRef<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: "PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n
      \   iPoint2D imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const
      uint16_t> stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - isValidImageGrid
    - stripHeights
    - auto::isThisInside
    - Array1DRef<const uint32_t>::size
    - Array1DRef<const uint16_t>::size
    - stripLineOffsets
    - ThrowRDE
    - auto::hasPositiveArea
    - getAsArray1DRef
    - iRectangle2D
    - iPoint2D
    - stripWidths
    - iPoint2D::hasPositiveArea
    linkageType: ''
    returnType: std::vector<iRectangle2D>
    signature: "std::vector<iRectangle2D> PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n
      \   iPoint2D imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const
      uint16_t> stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:344,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:344,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:345,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:346,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:347,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:351,1
    - Dst: maxBitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:352,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:354,1
    - Dst: minBitsPerPixelNeeded
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:356,1
    - Dst: mStrips::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:357,1
    - Dst: mStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:358,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:359,1
    - Dst: mOutRect
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:360,1
    - Dst: auto::dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:361,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - outputImg
    - mParams_
    argTypes:
    - RawImage
    - DecompressorParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 364
    functionName: rawspeed::PanasonicV8Decompressor::PanasonicV8Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - minBitsPerPixelNeeded
    - maxBitsPerPixelNeeded
    - std::move
    - auto::dim::area
    - mStrips
    - ThrowRDE
    - mStrips::size
    - getDataType
    - getCpp
    - mOutRect
    - auto::size
    linkageType: ''
    returnType: void
    signature: "void PanasonicV8Decompressor::PanasonicV8Decompressor(RawImage outputImg,\n
      \                                                DecompressorParams mParams_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mStrips::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:367,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:370,1
    - Dst: rawspeed_get_number_of_processor_cores
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:370,1
    - Dst: mStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:376,1
    - Dst: mOutRect
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:378,1
    - Dst: CroppedArray2DRef<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:380,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:381,1
    - Dst: rawspeed::PanasonicV8Decompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:390,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:393,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:393,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 399
    functionName: rawspeed::PanasonicV8Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - setError
    - rawspeed::PanasonicV8Decompressor::decompressStrip
    - mStrips
    - __builtin_unreachable
    - rawspeed_get_number_of_processor_cores
    - getU16DataAsUncroppedArray2DRef
    - mStrips::size
    - mOutRect
    - what
    - CroppedArray2DRef<uint16_t>
    - std::min
    linkageType: ''
    returnType: void
    signature: void PanasonicV8Decompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:404,1
    - Dst: Bayer2x2::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:404,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:406,1
    - Dst: Array2DRef<uint16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:406,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:407,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:407,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:411,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:411,1
    - Dst: TiledArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:413,1
    - Dst: Array2DRef<uint16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:414,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:417,1
    - Dst: auto::numCols
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:417,1
    - Dst: auto::numRows
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:418,1
    - Dst: rowGroups
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:419,1
    - Dst: TiledArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:421,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:428,1
    - Dst: auto::numRows
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:428,1
    - Dst: auto::numCols
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:429,1
    - Dst: outBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:430,1
    - Dst: InternalDecoder::decodeNextDiffValue
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:434,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:435,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:436,1
    - Dst: std::clamp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:436,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:437,1
    - Dst: outBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:438,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:438,1
    - Dst: outBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:445,1
    - Dst: pred
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:448,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - out
    - decoder
    argTypes:
    - Array2DRef<uint16_t>
    - InternalDecoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 450
    functionName: rawspeed::PanasonicV8Decompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 2
    functionsReached:
    - auto::numRows
    - std::clamp
    - tmp
    - outBlocks
    - TiledArray2DRef
    - auto::numCols
    - InternalDecoder::decodeNextDiffValue
    - Array2DRef
    - pred
    - std::numeric_limits<uint16_t>::max
    - Bayer2x2::data
    - rowGroups
    - invariant
    - Array2DRef<uint16_t>::height
    - Array2DRef<uint16_t>::width
    - outBlock
    linkageType: ''
    returnType: void
    signature: "void PanasonicV8Decompressor::decompressStrip(const Array2DRef<uint16_t>
      out,\n                                              InternalDecoder decoder)
      const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:455,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:456,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:457,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:457,1
    - Dst: mLUT
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:458,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:460,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:468,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 470
    functionName: PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - size
    - ThrowRDE
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - invariant
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - mLUT
    linkageType: ''
    returnType: int32_t
    signature: int32_t PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:47,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:47,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:55,1
    - Dst: rawspeed::SamsungV0Decompressor::computeStripes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:57,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - ' image'
    - bso
    - bsr
    argTypes:
    - RawImage
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: rawspeed::SamsungV0Decompressor::SamsungV0Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - rawspeed::SamsungV0Decompressor::computeStripes
    - ThrowRDE
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void SamsungV0Decompressor::SamsungV0Decompressor(const RawImage&
      image,\n                                             ByteStream bso, ByteStream
      bsr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:65,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:67,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:67,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:68,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:68,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:70,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:72,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:73,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:75,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:78,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:81,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:83,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:83,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:85,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:89,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - bso
    - bsr
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts:
    - condition: (stripes.size() == height)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: rawspeed::SamsungV0Decompressor::computeStripes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU32
    - std::end
    - std::advance
    - reserve
    - std::vector::emplace_back
    - emplace_back
    - ByteStream::getStream
    - size
    - std::vector::reserve
    - ByteStream::skipBytes
    - ThrowRDE
    - assert
    - ByteStream::getSize
    - std::next
    - invariant
    - std::begin
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::computeStripes(ByteStream bso, ByteStream
      bsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV0Decompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:94,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:97,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:98,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:99,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: rawspeed::SamsungV0Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - getU16DataAsUncroppedArray2DRef
    - std::swap
    - out
    - Array2DRef::width
    - rawspeed::SamsungV0Decompressor::decompressStrip
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::decompress() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signExtend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:107,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' bits'
    - nbits
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed::SamsungV0Decompressor::calcAdj
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 0
    functionsReached:
    - signExtend
    - getBits
    linkageType: ''
    returnType: int32_t
    signature: int32_t SamsungV0Decompressor::calcAdj(BitStreamerMSB32& bits, int
      nbits)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:111,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:112,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:112,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:114,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:121,1
    - Dst: BitStreamerMSB32::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:122,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:123,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:127,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:130,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:134,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:148,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:150,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:157,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:159,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:160,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:165,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:167,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:168,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:168,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:176,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:178,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:179,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:179,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:184,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:187,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:189,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:190,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:190,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:194,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:197,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:199,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:200,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:200,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - row
    - bs
    argTypes:
    - int
    - ByteStream
    assertStmts:
    - condition: (op[i] >= 0 && op[i] <= 3)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 204
    functionName: rawspeed::SamsungV0Decompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 1
    functionsReached:
    - BitStreamerMSB32::getBits
    - BitStreamerMSB32::fill
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - assert
    - invariant
    - BitStreamerMSB32::getBitsNoFill
    - out
    - ByteStream::peekRemainingBuffer
    - rawspeed::SamsungV0Decompressor::calcAdj
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::decompressStrip(int row, ByteStream bs)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:47,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:47,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:55,1
    - Dst: rawspeed::SamsungV0Decompressor::computeStripes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:57,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - ' image'
    - bso
    - bsr
    argTypes:
    - RawImage
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: rawspeed::SamsungV0Decompressor::SamsungV0Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - rawspeed::SamsungV0Decompressor::computeStripes
    - ThrowRDE
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void SamsungV0Decompressor::SamsungV0Decompressor(const RawImage&
      image,\n                                             ByteStream bso, ByteStream
      bsr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:65,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:67,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:67,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:68,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:68,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:70,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:72,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:73,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:75,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:78,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:81,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:83,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:83,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:85,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:89,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - bso
    - bsr
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts:
    - condition: (stripes.size() == height)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: rawspeed::SamsungV0Decompressor::computeStripes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU32
    - std::end
    - std::advance
    - reserve
    - std::vector::emplace_back
    - emplace_back
    - ByteStream::getStream
    - size
    - std::vector::reserve
    - ByteStream::skipBytes
    - ThrowRDE
    - assert
    - ByteStream::getSize
    - std::next
    - invariant
    - std::begin
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::computeStripes(ByteStream bso, ByteStream
      bsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV0Decompressor::decompressStrip
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:94,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:97,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:98,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:99,1
    - Dst: std::swap
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: rawspeed::SamsungV0Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - getU16DataAsUncroppedArray2DRef
    - std::swap
    - out
    - Array2DRef::width
    - rawspeed::SamsungV0Decompressor::decompressStrip
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::decompress() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signExtend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:107,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' bits'
    - nbits
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rawspeed::SamsungV0Decompressor::calcAdj
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 1
    functionsReached:
    - signExtend
    - getBits
    linkageType: ''
    returnType: int32_t
    signature: int32_t SamsungV0Decompressor::calcAdj(BitStreamerMSB32& bits, int
      nbits)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:111,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:112,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:112,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:114,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:121,1
    - Dst: BitStreamerMSB32::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:122,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:123,1
    - Dst: BitStreamerMSB32::getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:127,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:130,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:134,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:148,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:150,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:157,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:159,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:160,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:165,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:167,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:168,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:168,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:176,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:178,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:179,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:179,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:184,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:187,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:189,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:190,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:190,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:194,1
    - Dst: rawspeed::SamsungV0Decompressor::calcAdj
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:197,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:199,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:200,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp:200,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - row
    - bs
    argTypes:
    - int
    - ByteStream
    assertStmts:
    - condition: (op[i] >= 0 && op[i] <= 3)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 204
    functionName: rawspeed::SamsungV0Decompressor::decompressStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 2
    functionsReached:
    - BitStreamerMSB32::getBits
    - BitStreamerMSB32::fill
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - assert
    - invariant
    - BitStreamerMSB32::getBitsNoFill
    - out
    - ByteStream::peekRemainingBuffer
    - rawspeed::SamsungV0Decompressor::calcAdj
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SamsungV0Decompressor::decompressStrip(int row, ByteStream bs)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::FujiDecompressor::FujiHeader
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::FujiDecompressor::FujiHeader
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::PanasonicV5Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - bs_
    - beginCoord_
    - endCoord_
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: rawspeed::PanasonicV5Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(ByteStream bs_, iPoint2D beginCoord_, iPoint2D endCoord_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rawspeed::PanasonicV5Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - bs_
    - beginCoord_
    - endCoord_
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: rawspeed::PanasonicV5Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(ByteStream bs_, iPoint2D beginCoord_, iPoint2D endCoord_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::PanasonicV4Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - bs_
    - beginCoord_
    - endCoord_
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: rawspeed::PanasonicV4Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(ByteStream bs_, iPoint2D beginCoord_, iPoint2D endCoord_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::PanasonicV4Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - bs_
    - beginCoord_
    - endCoord_
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: rawspeed::PanasonicV4Decompressor::Block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(ByteStream bs_, iPoint2D beginCoord_, iPoint2D endCoord_)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:126,1
    - Dst: static_cast<int8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:153,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:175,1
    - Dst: numbits::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:204,1
    - Dst: rawspeed::NikonLASDecompressor::createBigTable
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int8_t>
    - rawspeed::NikonLASDecompressor::createBigTable
    - ThrowRDE
    - implicit_cast<int16_t>
    - numbits::fill
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void createPrefixCodeDecoder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bigTable::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:236,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:238,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:247,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:277,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: rawspeed::NikonLASDecompressor::createBigTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - extractHighBits
    - static_cast<int>
    - bigTable::resize
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void createBigTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: rawspeed::NikonLASDecompressor::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:300,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: rawspeed::NikonLASDecompressor::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - data
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: rawspeed::NikonLASDecompressor::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    linkageType: ''
    returnType: void
    signature: "void setup([[maybe_unused]] bool fullDecode_,\n             [[maybe_unused]]
      bool fixDNGBug16_)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:332,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:333,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:334,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:336,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:337,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:341,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:345,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:346,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:348,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:357,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 376
    functionName: rawspeed::NikonLASDecompressor::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - static_cast<int>
    - getBitsNoFill
    - ThrowRDE
    - skipBitsNoFill
    - static_cast<unsigned>
    - fill
    - getBits
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BitStreamerMSB& bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:126,1
    - Dst: static_cast<int8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:153,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:175,1
    - Dst: numbits::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:204,1
    - Dst: rawspeed::NikonLASDecompressor::createBigTable
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int8_t>
    - rawspeed::NikonLASDecompressor::createBigTable
    - ThrowRDE
    - implicit_cast<int16_t>
    - numbits::fill
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void createPrefixCodeDecoder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bigTable::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:236,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:238,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:247,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:277,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: rawspeed::NikonLASDecompressor::createBigTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 2
    functionsReached:
    - extractHighBits
    - static_cast<int>
    - bigTable::resize
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void createBigTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: rawspeed::NikonLASDecompressor::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:300,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: rawspeed::NikonLASDecompressor::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - data
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: rawspeed::NikonLASDecompressor::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    linkageType: ''
    returnType: void
    signature: "void setup([[maybe_unused]] bool fullDecode_,\n             [[maybe_unused]]
      bool fixDNGBug16_)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:332,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:333,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:334,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:336,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:337,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:341,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:345,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:346,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:348,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:357,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 376
    functionName: rawspeed::NikonLASDecompressor::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - static_cast<int>
    - getBitsNoFill
    - ThrowRDE
    - skipBitsNoFill
    - static_cast<unsigned>
    - fill
    - getBits
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BitStreamerMSB& bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:395,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:395,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:397,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:398,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:401,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:403,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:403,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:406,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:407,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:410,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:411,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:414,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:416,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:416,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:417,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:418,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:418,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:419,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:422,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:426,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:427,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:432,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:433,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:436,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:441,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:441,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:442,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:442,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - ' metadata'
    - bitsPS
    - v0
    - v1
    - split
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: (curve.size() > 1)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (a_pos < curve.size())
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (a_pos < b_pos)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (b_pos > 0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (curve.size() > 1)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (b_pos < curve.size())
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (!curve.empty())
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 445
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 445
    functionName: rawspeed::NikonDecompressor::createCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getU16
    - setPosition
    - implicit_cast<uint32_t>
    - std::vector::size
    - ThrowRDE
    - assert
    - std::vector::empty
    - std::vector::resize
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: "std::vector<uint16_t> NikonDecompressor::createCurve(ByteStream& metadata,\n
      \                                                    uint32_t bitsPS,\n                                                     uint32_t
      v0, uint32_t v1,\n                                                     uint32_t*
      split)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Huffman::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: Huffman::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:452,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:453,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:453,1
    - Dst: Huffman::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - huffSelect
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: rawspeed::NikonDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - Huffman::setNCodesPerLength
    - Huffman::setCodeValues
    - Huffman::setup
    linkageType: ''
    returnType: Huffman
    signature: Huffman NikonDecompressor::createPrefixCodeDecoder(uint32_t huffSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:465,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:466,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:466,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - huffSelect
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 471
    functionName: "NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n
      \   uint32_t huffSelect)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - HuffmanCode::setCodeValues
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - PrefixCodeDecoder::setup
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: "PrefixCodeDecoder<> NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n
      \   uint32_t huffSelect)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:475,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:476,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:476,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:477,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:478,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:480,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:482,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:490,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:493,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:494,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:496,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:499,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:506,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:507,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:508,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:509,1
    - Dst: rawspeed::NikonDecompressor::createCurve
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:511,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:514,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 3
    argNames:
    - raw
    - metadata
    - bitsPS_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 516
    functionName: rawspeed::NikonDecompressor::NikonDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - ByteStream::getU16
    - dim::hasPositiveArea
    - std::move
    - writeLog
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - getDataType
    - getCpp
    - static_cast<unsigned>
    - rawspeed::NikonDecompressor::createCurve
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::NikonDecompressor(RawImage raw, ByteStream
      metadata,\n                                     uint32_t bitsPS_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:521,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:523,1
    - Dst: reinterpret_cast<RawImageDataU16*>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:526,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:526,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:528,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:528,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:529,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:529,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:532,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:533,1
    - Dst: auto*::setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:536,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:536,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:537,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' bits'
    - start_y
    - end_y
    argTypes:
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 541
    functionName: rawspeed::NikonDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NikonDecompressor::createPrefixCodeDecoder
    - clampBits
    - auto*::setWithLookUp
    - reinterpret_cast<std::byte*>
    - reinterpret_cast<RawImageDataU16*>
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - get
    - out
    - Array2DRef::width
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::decompress(BitStreamerMSB& bits, int start_y,\n
      \                                  int end_y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamerMSB::peekBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:549,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:551,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:551,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:554,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:556,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - input
    - uncorrectedRawValues
    argTypes:
    - Array1DRef<const uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: rawspeed::NikonDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::NikonDecompressor::decompress
    - static_cast<unsigned>
    - invariant
    - BitStreamerMSB::peekBits
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::decompress(Array1DRef<const uint8_t> input,\n
      \                                  bool uncorrectedRawValues)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:126,1
    - Dst: static_cast<int8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:153,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:175,1
    - Dst: numbits::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:204,1
    - Dst: rawspeed::NikonLASDecompressor::createBigTable
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int8_t>
    - rawspeed::NikonLASDecompressor::createBigTable
    - ThrowRDE
    - implicit_cast<int16_t>
    - numbits::fill
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void createPrefixCodeDecoder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bigTable::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:236,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:238,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:247,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:277,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: rawspeed::NikonLASDecompressor::createBigTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 3
    functionsReached:
    - extractHighBits
    - static_cast<int>
    - bigTable::resize
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void createBigTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: rawspeed::NikonLASDecompressor::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:300,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: rawspeed::NikonLASDecompressor::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - data
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: rawspeed::NikonLASDecompressor::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    linkageType: ''
    returnType: void
    signature: "void setup([[maybe_unused]] bool fullDecode_,\n             [[maybe_unused]]
      bool fixDNGBug16_)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:332,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:333,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:334,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:336,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:337,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:341,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:345,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:346,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:348,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:357,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 376
    functionName: rawspeed::NikonLASDecompressor::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - static_cast<int>
    - getBitsNoFill
    - ThrowRDE
    - skipBitsNoFill
    - static_cast<unsigned>
    - fill
    - getBits
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BitStreamerMSB& bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:126,1
    - Dst: static_cast<int8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:153,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:175,1
    - Dst: numbits::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:204,1
    - Dst: rawspeed::NikonLASDecompressor::createBigTable
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int8_t>
    - rawspeed::NikonLASDecompressor::createBigTable
    - ThrowRDE
    - implicit_cast<int16_t>
    - numbits::fill
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void createPrefixCodeDecoder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bigTable::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:236,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:238,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:247,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:277,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: rawspeed::NikonLASDecompressor::createBigTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 4
    functionsReached:
    - extractHighBits
    - static_cast<int>
    - bigTable::resize
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void createBigTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: rawspeed::NikonLASDecompressor::setNCodesPerLength
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t setNCodesPerLength(Buffer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:300,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: rawspeed::NikonLASDecompressor::setCodeValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - data
    linkageType: ''
    returnType: void
    signature: void setCodeValues(Array1DRef<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fullDecode_
    - fixDNGBug16_
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: rawspeed::NikonLASDecompressor::setup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
    linkageType: ''
    returnType: void
    signature: "void setup([[maybe_unused]] bool fullDecode_,\n             [[maybe_unused]]
      bool fixDNGBug16_)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:332,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:333,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:334,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:336,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:337,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:341,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:345,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:346,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:348,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:357,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 376
    functionName: rawspeed::NikonLASDecompressor::decodeDifference
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - static_cast<int>
    - getBitsNoFill
    - ThrowRDE
    - skipBitsNoFill
    - static_cast<unsigned>
    - fill
    - getBits
    linkageType: ''
    returnType: int
    signature: int decodeDifference(BitStreamerMSB& bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:395,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:395,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:397,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:398,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:401,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:403,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:403,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:406,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:407,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:410,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:411,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:414,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:416,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:416,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:417,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:418,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:418,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:419,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:422,1
    - Dst: setPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:426,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:427,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:432,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:433,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:433,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:436,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:441,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:441,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:442,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:442,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - ' metadata'
    - bitsPS
    - v0
    - v1
    - split
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: (curve.size() > 1)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (a_pos < curve.size())
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (a_pos < b_pos)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (b_pos > 0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (curve.size() > 1)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (b_pos < curve.size())
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - condition: (!curve.empty())
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 445
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 445
    functionName: rawspeed::NikonDecompressor::createCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - getU16
    - setPosition
    - implicit_cast<uint32_t>
    - std::vector::size
    - ThrowRDE
    - assert
    - std::vector::empty
    - std::vector::resize
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: "std::vector<uint16_t> NikonDecompressor::createCurve(ByteStream& metadata,\n
      \                                                    uint32_t bitsPS,\n                                                     uint32_t
      v0, uint32_t v1,\n                                                     uint32_t*
      split)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Huffman::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:451,1
    - Dst: Huffman::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:452,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:453,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:453,1
    - Dst: Huffman::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - huffSelect
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: rawspeed::NikonDecompressor::createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - Huffman::setNCodesPerLength
    - Huffman::setCodeValues
    - Huffman::setup
    linkageType: ''
    returnType: Huffman
    signature: Huffman NikonDecompressor::createPrefixCodeDecoder(uint32_t huffSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:464,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:465,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:466,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:466,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - huffSelect
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 471
    functionName: "NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n
      \   uint32_t huffSelect)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - HuffmanCode::setCodeValues
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - PrefixCodeDecoder::setup
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: "PrefixCodeDecoder<> NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n
      \   uint32_t huffSelect)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:475,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:476,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:476,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:477,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:478,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:480,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:482,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:490,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:493,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:494,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:496,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:499,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:506,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:507,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:508,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:509,1
    - Dst: rawspeed::NikonDecompressor::createCurve
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:511,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:514,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 3
    argNames:
    - raw
    - metadata
    - bitsPS_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 516
    functionName: rawspeed::NikonDecompressor::NikonDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - ByteStream::getU16
    - dim::hasPositiveArea
    - std::move
    - writeLog
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - getDataType
    - getCpp
    - static_cast<unsigned>
    - rawspeed::NikonDecompressor::createCurve
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::NikonDecompressor(RawImage raw, ByteStream
      metadata,\n                                     uint32_t bitsPS_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NikonDecompressor::createPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:521,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:523,1
    - Dst: reinterpret_cast<RawImageDataU16*>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:526,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:526,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:528,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:528,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:529,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:529,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:532,1
    - Dst: auto::decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:533,1
    - Dst: auto*::setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:536,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:536,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:537,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' bits'
    - start_y
    - end_y
    argTypes:
    - BitStreamerMSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 541
    functionName: rawspeed::NikonDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::NikonDecompressor::createPrefixCodeDecoder
    - clampBits
    - auto*::setWithLookUp
    - reinterpret_cast<std::byte*>
    - reinterpret_cast<RawImageDataU16*>
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - get
    - out
    - Array2DRef::width
    - auto::decodeDifference
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::decompress(BitStreamerMSB& bits, int start_y,\n
      \                                  int end_y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamerMSB::peekBits
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:549,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:551,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:551,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:554,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:556,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - input
    - uncorrectedRawValues
    argTypes:
    - Array1DRef<const uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: rawspeed::NikonDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::NikonDecompressor::decompress
    - static_cast<unsigned>
    - invariant
    - BitStreamerMSB::peekBits
    linkageType: ''
    returnType: void
    signature: "void NikonDecompressor::decompress(Array1DRef<const uint8_t> input,\n
      \                                  bool uncorrectedRawValues)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: rawspeed::PanasonicV8Decompressor::isSentinel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - DecoderLUTEntry
    linkageType: ''
    returnType: bool
    signature: bool isSentinel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorParams()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - imgSize_
    - mStrips_
    - mOutRect_
    - mDecoderLUT_
    - initialPrediction_
    argTypes:
    - iPoint2D
    - Array1DRef<const Array1DRef<const uint8_t>>
    - Array1DRef<const iRectangle2D>
    - Array1DRef<const DecoderLUTEntry>
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DecompressorParams(iPoint2D imgSize_,\n                       Array1DRef<const
      Array1DRef<const uint8_t>> mStrips_,\n                       Array1DRef<const
      iRectangle2D> mOutRect_,\n                       Array1DRef<const DecoderLUTEntry>
      mDecoderLUT_,\n                       Bayer2x2 initialPrediction_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDecoderLUT
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:115,1
    - Dst: getOutRects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 7
    argNames:
    - imgSize_
    - initialPrediction_
    - mStrips_
    - stripLineOffsets
    - stripWidths
    - stripHeights
    - defineCodes
    argTypes:
    - iPoint2D
    - Bayer2x2
    - Array1DRef<const Array1DRef<const uint8_t>>
    - Array1DRef<const uint32_t>
    - Array1DRef<const uint16_t>
    - Array1DRef<const uint16_t>
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParamsBuilder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - size
    - implicit_cast<int>
    - ThrowRDE
    - getOutRects
    - getDecoderLUT
    linkageType: ''
    returnType: void
    signature: "void DecompressorParamsBuilder(\n        iPoint2D imgSize_, Bayer2x2
      initialPrediction_,\n        Array1DRef<const Array1DRef<const uint8_t>> mStrips_,\n
      \       Array1DRef<const uint32_t> stripLineOffsets,\n        Array1DRef<const
      uint16_t> stripWidths,\n        Array1DRef<const uint16_t> stripHeights, ByteStream
      defineCodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:128,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: rawspeed::PanasonicV8Decompressor::getDecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - getAsArray1DRef
    linkageType: ''
    returnType: DecompressorParams
    signature: DecompressorParams getDecompressorParams() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderLUTEntry
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: rawspeed::PanasonicV8Decompressor::isSentinel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - DecoderLUTEntry
    linkageType: ''
    returnType: bool
    signature: bool isSentinel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorParams()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - imgSize_
    - mStrips_
    - mOutRect_
    - mDecoderLUT_
    - initialPrediction_
    argTypes:
    - iPoint2D
    - Array1DRef<const Array1DRef<const uint8_t>>
    - Array1DRef<const iRectangle2D>
    - Array1DRef<const DecoderLUTEntry>
    - Bayer2x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DecompressorParams(iPoint2D imgSize_,\n                       Array1DRef<const
      Array1DRef<const uint8_t>> mStrips_,\n                       Array1DRef<const
      iRectangle2D> mOutRect_,\n                       Array1DRef<const DecoderLUTEntry>
      mDecoderLUT_,\n                       Bayer2x2 initialPrediction_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDecoderLUT
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:115,1
    - Dst: getOutRects
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 7
    argNames:
    - imgSize_
    - initialPrediction_
    - mStrips_
    - stripLineOffsets
    - stripWidths
    - stripHeights
    - defineCodes
    argTypes:
    - iPoint2D
    - Bayer2x2
    - Array1DRef<const Array1DRef<const uint8_t>>
    - Array1DRef<const uint32_t>
    - Array1DRef<const uint16_t>
    - Array1DRef<const uint16_t>
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: rawspeed::PanasonicV8Decompressor::DecompressorParamsBuilder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - size
    - implicit_cast<int>
    - ThrowRDE
    - getOutRects
    - getDecoderLUT
    linkageType: ''
    returnType: void
    signature: "void DecompressorParamsBuilder(\n        iPoint2D imgSize_, Bayer2x2
      initialPrediction_,\n        Array1DRef<const Array1DRef<const uint8_t>> mStrips_,\n
      \       Array1DRef<const uint32_t> stripLineOffsets,\n        Array1DRef<const
      uint16_t> stripWidths,\n        Array1DRef<const uint16_t> stripHeights, ByteStream
      defineCodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:128,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: rawspeed::PanasonicV8Decompressor::getDecompressorParams
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    functionUses: 0
    functionsReached:
    - getAsArray1DRef
    linkageType: ''
    returnType: DecompressorParams
    signature: DecompressorParams getDecompressorParams() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::Cr2SliceWidths::Cr2SliceWidths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cr2SliceWidths()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - numSlices_
    - sliceWidth_
    - lastSliceWidth_
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: rawspeed::Cr2SliceWidths::Cr2SliceWidths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: "void Cr2SliceWidths(uint16_t numSlices_, uint16_t sliceWidth_,\n                 uint16_t
      lastSliceWidth_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: rawspeed::Cr2SliceWidths::empty
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sliceId
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: rawspeed::Cr2SliceWidths::widthOfSlice
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: int
    signature: int widthOfSlice(int sliceId) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' slicing_'
    - sliceId_
    argTypes:
    - Cr2SliceWidths
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: rawspeed::Cr2SliceWidthIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void Cr2SliceWidthIterator(const Cr2SliceWidths& slicing_, int sliceId_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:104,1
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - widthOfSlice
    - rawspeed::invariant
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2SliceWidthIterator
    - Cr2SliceWidthIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: "operator==(const Cr2SliceWidthIterator& a,\n                         const
      Cr2SliceWidthIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Cr2SliceWidthIterator& a,\n                         const
      Cr2SliceWidthIterator& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: rawspeed::Cr2SliceWidths::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator Cr2SliceWidths::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: rawspeed::Cr2SliceWidths::end
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator Cr2SliceWidths::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::Cr2SliceWidths::Cr2SliceWidths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cr2SliceWidths()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - numSlices_
    - sliceWidth_
    - lastSliceWidth_
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: rawspeed::Cr2SliceWidths::Cr2SliceWidths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: "void Cr2SliceWidths(uint16_t numSlices_, uint16_t sliceWidth_,\n                 uint16_t
      lastSliceWidth_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: rawspeed::Cr2SliceWidths::empty
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sliceId
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: rawspeed::Cr2SliceWidths::widthOfSlice
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: int
    signature: int widthOfSlice(int sliceId) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' slicing_'
    - sliceId_
    argTypes:
    - Cr2SliceWidths
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: rawspeed::Cr2SliceWidthIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void Cr2SliceWidthIterator(const Cr2SliceWidths& slicing_, int sliceId_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:104,1
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - widthOfSlice
    - invariant
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2SliceWidthIterator
    - Cr2SliceWidthIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: "operator==(const Cr2SliceWidthIterator& a,\n                         const
      Cr2SliceWidthIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Cr2SliceWidthIterator& a,\n                         const
      Cr2SliceWidthIterator& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: rawspeed::Cr2SliceWidths::begin
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator Cr2SliceWidths::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: rawspeed::Cr2SliceWidths::end
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceWidthIterator
    signature: Cr2SliceWidthIterator Cr2SliceWidths::end() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:38,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:38,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:39,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:40,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:43,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:45,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void HasselbladLJpegDecoder::HasselbladLJpegDecoder(ByteStream bs,\n
      \                                              const RawImage& img)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:52,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:54,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:56,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:61,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:61,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:64,1
    - Dst: HasselbladDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: rawspeed::HasselbladLJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getInitialPredictors
    - ThrowRDE
    - HasselbladDecompressor::decompress
    - getPrefixCodeDecoders
    - peekRemainingBuffer
    - static_cast<unsigned>
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type HasselbladLJpegDecoder::decodeScan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::HasselbladLJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    linkageType: ''
    returnType: void
    signature: void HasselbladLJpegDecoder::decode()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:38,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:38,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:39,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:40,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:43,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:45,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void HasselbladLJpegDecoder::HasselbladLJpegDecoder(ByteStream bs,\n
      \                                              const RawImage& img)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:52,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:54,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:56,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:61,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:61,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:64,1
    - Dst: HasselbladDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: rawspeed::HasselbladLJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getInitialPredictors
    - ThrowRDE
    - HasselbladDecompressor::decompress
    - getPrefixCodeDecoders
    - peekRemainingBuffer
    - static_cast<unsigned>
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type HasselbladLJpegDecoder::decodeScan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: rawspeed::HasselbladLJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    linkageType: ''
    returnType: void
    signature: void HasselbladLJpegDecoder::decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: rawspeed::PhaseOneStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhaseOneStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - block
    - bs_
    argTypes:
    - int
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::PhaseOneStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhaseOneStrip(int block, ByteStream bs_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: rawspeed::PhaseOneStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhaseOneStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - block
    - bs_
    argTypes:
    - int
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: rawspeed::PhaseOneStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PhaseOneStrip(int block, ByteStream bs_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:50,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 3
    argNames:
    - ' image'
    - bs_
    - bit
    argTypes:
    - RawImage
    - ByteStream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: rawspeed::SamsungV1Decompressor::SamsungV1Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getDataType
    - getCpp
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: "void SamsungV1Decompressor::SamsungV1Decompressor(const RawImage&
      image,\n                                             ByteStream bs_, int bit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:66,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:68,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:70,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:75,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' pump'
    - ' tbl'
    argTypes:
    - BitStreamerMSB
    - std::vector<encTableItem>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: rawspeed::SamsungV1Decompressor::samsungDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - peekBitsNoFill
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int32_t
    signature: "int32_t SamsungV1Decompressor::samsungDiff(BitStreamerMSB& pump,\n
      \                                  const std::vector<encTableItem>& tbl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:120,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:121,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:121,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:123,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:123,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:124,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:125,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:128,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:128,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:130,1
    - Dst: rawspeed::SamsungV1Decompressor::samsungDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:131,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:135,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:136,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:137,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 140
    functionName: rawspeed::SamsungV1Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - peekRemainingBuffer
    - isIntN
    - rawspeed::SamsungV1Decompressor::samsungDiff
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SamsungV1Decompressor::decompress() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:50,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 3
    argNames:
    - ' image'
    - bs_
    - bit
    argTypes:
    - RawImage
    - ByteStream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: rawspeed::SamsungV1Decompressor::SamsungV1Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getDataType
    - getCpp
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: "void SamsungV1Decompressor::SamsungV1Decompressor(const RawImage&
      image,\n                                             ByteStream bs_, int bit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:66,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:68,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:70,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:75,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' pump'
    - ' tbl'
    argTypes:
    - BitStreamerMSB
    - std::vector<encTableItem>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: rawspeed::SamsungV1Decompressor::samsungDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 1
    functionsReached:
    - peekBitsNoFill
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int32_t
    signature: "int32_t SamsungV1Decompressor::samsungDiff(BitStreamerMSB& pump,\n
      \                                  const std::vector<encTableItem>& tbl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:120,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:121,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:121,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:123,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:123,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:124,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:125,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:128,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:128,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:130,1
    - Dst: rawspeed::SamsungV1Decompressor::samsungDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:131,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:135,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:136,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:137,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 140
    functionName: rawspeed::SamsungV1Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - peekRemainingBuffer
    - isIntN
    - rawspeed::SamsungV1Decompressor::samsungDiff
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void SamsungV1Decompressor::decompress() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: bs::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:64,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:74,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:79,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:81,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:82,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:88,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:95,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:98,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:100,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:102,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:102,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:104,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:104,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 110
    functionName: AbstractDngDecompressor::decompressThread<1>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - ThrowIOE
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - iRectangle2D
    - UncompressedDecompressor::readUncompressedRaw
    - what
    - bs::getByteOrder
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<1>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:120,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:121,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:123,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:123,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:125,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:125,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: AbstractDngDecompressor::decompressThread<7>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - LJpegDecoder::decode
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - iPoint2D
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<7>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: bs::peekBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:144,1
    - Dst: bs::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:144,1
    - Dst: DeflateDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:147,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:147,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:148,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:148,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:150,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:150,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:152,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:152,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: AbstractDngDecompressor::decompressThread<8>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - DeflateDecompressor::decode
    - bs::getRemainSize
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - bs::peekBuffer
    - getCpp
    - iPoint2D
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<8>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: VC5Decompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:169,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:171,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:171,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:173,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:173,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: AbstractDngDecompressor::decompressThread<9>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - data
    - Array1DRef
    - size
    - setError
    - VC5Decompressor::decode
    - implicit_cast<int>
    - __builtin_unreachable
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<9>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: bs::peekBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:190,1
    - Dst: bs::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:190,1
    - Dst: JpegDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:191,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:193,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:193,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:195,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:195,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - bs::getRemainSize
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - JpegDecompressor::decode
    - __builtin_unreachable
    - bs::peekBuffer
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:205,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:208,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:212,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:215,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:219,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:223,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:227,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:231,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:234,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: rawspeed::AbstractDngDecompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractDngDecompressor::decompressThread
    - setError
    - invariant
    - getCpp
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:246,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:249,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:250,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: rawspeed::AbstractDngDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractDngDecompressor::decompressThread
    - isTooManyErrors
    - std::string::c_str
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompress() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:59,1
    - Dst: bs::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:64,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:74,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:79,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:81,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:82,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:88,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:95,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:98,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:100,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:102,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:102,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:104,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:104,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 110
    functionName: AbstractDngDecompressor::decompressThread<1>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - ThrowIOE
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - iRectangle2D
    - UncompressedDecompressor::readUncompressedRaw
    - what
    - bs::getByteOrder
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<1>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:117,1
    - Dst: LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:120,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:121,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:123,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:123,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:125,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:125,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: AbstractDngDecompressor::decompressThread<7>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - LJpegDecoder::decode
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - iPoint2D
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<7>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:142,1
    - Dst: bs::peekBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:144,1
    - Dst: bs::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:144,1
    - Dst: DeflateDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:147,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:147,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:148,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:148,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:150,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:150,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:152,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:152,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: AbstractDngDecompressor::decompressThread<8>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - DeflateDecompressor::decode
    - bs::getRemainSize
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - __builtin_unreachable
    - bs::peekBuffer
    - getCpp
    - iPoint2D
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<8>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:166,1
    - Dst: VC5Decompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:169,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:171,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:171,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:173,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:173,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: AbstractDngDecompressor::decompressThread<9>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - data
    - Array1DRef
    - size
    - setError
    - VC5Decompressor::decode
    - implicit_cast<int>
    - __builtin_unreachable
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<9>() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:188,1
    - Dst: bs::peekBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:190,1
    - Dst: bs::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:190,1
    - Dst: JpegDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:191,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:193,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:193,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:195,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:195,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - bs::getRemainSize
    - data
    - Array1DRef
    - size
    - setError
    - implicit_cast<int>
    - JpegDecompressor::decode
    - __builtin_unreachable
    - bs::peekBuffer
    - what
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:205,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:206,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:207,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:208,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:212,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:215,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:219,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:223,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:227,1
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:231,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:234,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: rawspeed::AbstractDngDecompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::AbstractDngDecompressor::decompressThread
    - setError
    - invariant
    - getCpp
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractDngDecompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:246,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:249,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:250,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: rawspeed::AbstractDngDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractDngDecompressor::decompressThread
    - isTooManyErrors
    - std::string::c_str
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void AbstractDngDecompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: rawspeed::AbstractLJpegDecoder::getSamplePrecision
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getSamplePrecision() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~AbstractLJpegDecoder()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractLJpegDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool erratumImplicitEOIMarkerAfterScan() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - N_COMP
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: rawspeed::AbstractLJpegDecoder::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached:
    - implicit_cast<unsigned>
    - ThrowRDE
    - size
    linkageType: ''
    returnType: std::vector<const PrefixCodeDecoder<>*>
    signature: std::vector<const PrefixCodeDecoder<>*> getPrefixCodeDecoders(int N_COMP)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:131,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - N_COMP
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: rawspeed::AbstractLJpegDecoder::getInitialPredictors
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - std::vector::end
    - std::fill
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> getInitialPredictors(int N_COMP) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: rawspeed::AbstractLJpegDecoder::getSamplePrecision
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getSamplePrecision() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~AbstractLJpegDecoder()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractLJpegDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool erratumImplicitEOIMarkerAfterScan() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - N_COMP
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: rawspeed::AbstractLJpegDecoder::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached:
    - implicit_cast<unsigned>
    - ThrowRDE
    - size
    linkageType: ''
    returnType: std::vector<const PrefixCodeDecoder<>*>
    signature: std::vector<const PrefixCodeDecoder<>*> getPrefixCodeDecoders(int N_COMP)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:131,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    - Dst: std::vector::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    - Dst: std::vector::end
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - N_COMP
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: rawspeed::AbstractLJpegDecoder::getInitialPredictors
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - std::vector::end
    - std::fill
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> getInitialPredictors(int N_COMP) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(const FujiStrip&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& operator=(const FujiStrip&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(const FujiStrip&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(FujiStrip&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' h_'
    - block
    - input_
    argTypes:
    - FujiDecompressor::FujiHeader
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void FujiStrip(const FujiDecompressor::FujiHeader& h_, int block,\n
      \           Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: rawspeed::lineHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineHeight()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: rawspeed::height
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:146,1
    - Dst: rawspeed::offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: rawspeed::width
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::offsetX
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - MCU
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: rawspeed::numMCUs
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::width
    - rawspeed::invariant
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D numMCUs(iPoint2D MCU) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:159,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: rawspeed::offsetY
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::height
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: int offsetY(int line = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: rawspeed::offsetX
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int offsetX() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:171,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - cur_val
    argTypes:
    - fuji_compressed_params
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: rawspeed::GetGradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - rawspeed::implicit_cast
    linkageType: ''
    returnType: int8_t
    signature: int8_t GetGradient(const fuji_compressed_params& p, int cur_val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:193,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:211,1
    - Dst: GetGradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 237
    functionName: rawspeed::fuji_compressed_params::fuji_compressed_params
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - GetGradient
    - resize
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_params::fuji_compressed_params(\n    const FujiDecompressor::FujiHeader&
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: rawspeed::fuji_compressed_params::qTableLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t fuji_compressed_params::qTableLookup(int cur_val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - img_
    - ' header_'
    - ' common_info_'
    argTypes:
    - Array2DRef<uint16_t>
    - FujiDecompressor::FujiHeader
    - fuji_compressed_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: rawspeed::fuji_compressed_block::fuji_compressed_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_compressed_block(\n    Array2DRef<uint16_t>
      img_, const FujiDecompressor::FujiHeader& header_,\n    const fuji_compressed_params&
      common_info_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: memset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 335
    functionName: rawspeed::fuji_compressed_block::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - lines
    - width
    - CroppedArray2DRef
    - memset
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::reset()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: XTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:344,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:346,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:347,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:350,1
    - Dst: numMCUs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:351,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetY
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:356,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:365,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:380,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: idx
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ' strip'
    - cur_line
    - idx
    argTypes:
    - FujiStrip
    - int
    - T
    assertStmts:
    - condition: (MCU<Tag> == strip.h.MCU)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 388
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 388
    functionName: rawspeed::fuji_compressed_block::copy_line
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getAsCFAColors
    - out
    - lines
    - idx
    - XTransPhase
    - numMCUs
    - __builtin_unreachable
    - std::array::data
    - assert
    - CFA
    - CroppedArray2DRef
    - offsetY
    - offsetX
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line(const FujiStrip& strip, int
      cur_line,\n                                      T idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: rawspeed::fuji_compressed_block::copy_line_to_xtrans
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_xtrans(const FujiStrip& strip,\n
      \                                               int cur_line) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: rawspeed::fuji_compressed_block::copy_line_to_bayer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_bayer(const FujiStrip& strip,\n
      \                                              int cur_line) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:413,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:414,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:415,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' pump'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: rawspeed::fuji_compressed_block::fuji_zerobits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - skipBitsNoFill
    - peekBitsNoFill
    - fill
    - std::countl_zero
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_zerobits(BitStreamerMSB& pump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:433,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:434,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:438,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value1
    - value2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - std::max
    - invariant
    - std::countl_zero
    - std::min
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:447,1
    - Dst: rawspeed::fuji_compressed_block::fuji_zerobits
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:449,1
    - Dst: bitDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:454,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:464,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:468,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:477,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - grad
    - interp_val
    - ' grads'
    argTypes:
    - int
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 502
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - std::min
    - ThrowRDE
    - bitDiff
    - rawspeed::fuji_compressed_block::fuji_zerobits
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample(int grad, int interp_val,\n
      \                                         std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:507,1
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: rawspeed::fuji_compressed_block::fuji_quant_gradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - qTableLookup
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_quant_gradient(int v1, int v2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:514,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:515,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:516,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:517,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:519,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:520,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:521,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:526,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:530,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 543
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - std::max
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_even_inner(xt_lines
      c,\n                                                            int col) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:548,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:549,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:550,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:551,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:552,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:555,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::minmax
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_odd_inner(xt_lines
      c,\n                                                           int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:568,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_even(\n    xt_lines
      c, int col, std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:575,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_odd(xt_lines c, int
      col,\n                                              std::array<int_pair, 41>&
      grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_interpolation_even(xt_lines
      c,\n                                                      int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: rawspeed::fuji_compressed_block::fuji_extend_generic
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - width
    - lines
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_generic(int start, int end)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: rawspeed::fuji_compressed_block::fuji_extend_red
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_red() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: rawspeed::fuji_compressed_block::fuji_extend_green
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_green() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: rawspeed::fuji_compressed_block::fuji_extend_blue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_blue() const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:609,1
    - Dst: func_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:626,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:635,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:645,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:646,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:656,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:658,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:676,1
    - Dst: ColorCounter
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:678,1
    - Dst: static_cast<xt_lines>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:679,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: pass
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_red
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:691,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_green
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:694,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_blue
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:697,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - func_even
    - cur_line
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 704
    functionName: rawspeed::fuji_compressed_block::fuji_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - __builtin_unreachable
    - rawspeed::fuji_compressed_block::fuji_extend_red
    - static_cast<xt_lines>
    - CurLineForColor
    - static_cast<uint8_t>
    - func_even
    - rawspeed::fuji_compressed_block::fuji_extend_blue
    - std::array::begin
    - implicit_cast<uint16_t>
    - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    - getAsCFAColors
    - lines
    - std::fill
    - ColorCounter
    - std::array::end
    - CFA
    - rawspeed::fuji_compressed_block::fuji_extend_green
    - pass
    - std::array::data
    - invariant
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_decode_block(T func_even,\n                                         [[maybe_unused]]
      int cur_line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:707,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:714,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:715,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:719,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 7
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: rawspeed::fuji_compressed_block::xtrans_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    - invariant
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::xtrans_decode_block(int cur_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:725,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_bayer_decode_block(int cur_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:744,1
    - Dst: rawspeed::fuji_compressed_block::xtrans_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:746,1
    - Dst: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:748,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_xtrans
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:752,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_bayer
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:754,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:757,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:766,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:768,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:771,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - FujiStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 779
    functionName: rawspeed::fuji_compressed_block::fuji_decode_strip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line_to_bayer
    - memcpy
    - lines
    - CroppedArray2DRef
    - height
    - width
    - rawspeed::fuji_compressed_block::xtrans_decode_block
    - rawspeed::fuji_compressed_block::copy_line_to_xtrans
    - rawspeed::MSan::Allocated
    - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_decode_strip(const FujiStrip& strip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mRaw_
    - strips_
    - ' h_'
    argTypes:
    - RawImage
    - Array1DRef<const Array1DRef<const uint8_t>>
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void FujiDecompressorImpl::FujiDecompressorImpl(\n    RawImage mRaw_,
      Array1DRef<const Array1DRef<const uint8_t>> strips_,\n    const FujiDecompressor::FujiHeader&
      h_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:806,1
    - Dst: fuji_compressed_block::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:815,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:816,1
    - Dst: fuji_compressed_block::fuji_decode_strip
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:817,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 826
    functionName: rawspeed::FujiDecompressorImpl::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - setError
    - fuji_compressed_block::reset
    - BitStreamerMSB
    - __builtin_unreachable
    - getU16DataAsUncroppedArray2DRef
    - fuji_compressed_block::fuji_decode_strip
    - what
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FujiDecompressorImpl::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:833,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:836,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:837,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: rawspeed::FujiDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::FujiDecompressorImpl::decompressThread
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(const FujiStrip&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& operator=(const FujiStrip&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(const FujiStrip&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(FujiStrip&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' h_'
    - block
    - input_
    argTypes:
    - FujiDecompressor::FujiHeader
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void FujiStrip(const FujiDecompressor::FujiHeader& h_, int block,\n
      \           Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: rawspeed::lineHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineHeight()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: rawspeed::height
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:146,1
    - Dst: rawspeed::offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: rawspeed::width
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::offsetX
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - MCU
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: rawspeed::numMCUs
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::width
    - rawspeed::invariant
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D numMCUs(iPoint2D MCU) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:159,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: rawspeed::offsetY
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::height
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: int offsetY(int line = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: rawspeed::offsetX
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int offsetX() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:171,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - cur_val
    argTypes:
    - fuji_compressed_params
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: rawspeed::GetGradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - rawspeed::implicit_cast
    linkageType: ''
    returnType: int8_t
    signature: int8_t GetGradient(const fuji_compressed_params& p, int cur_val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:193,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:211,1
    - Dst: GetGradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 237
    functionName: rawspeed::fuji_compressed_params::fuji_compressed_params
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - GetGradient
    - resize
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_params::fuji_compressed_params(\n    const FujiDecompressor::FujiHeader&
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: rawspeed::fuji_compressed_params::qTableLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t fuji_compressed_params::qTableLookup(int cur_val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - img_
    - ' header_'
    - ' common_info_'
    argTypes:
    - Array2DRef<uint16_t>
    - FujiDecompressor::FujiHeader
    - fuji_compressed_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: rawspeed::fuji_compressed_block::fuji_compressed_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_compressed_block(\n    Array2DRef<uint16_t>
      img_, const FujiDecompressor::FujiHeader& header_,\n    const fuji_compressed_params&
      common_info_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: memset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 335
    functionName: rawspeed::fuji_compressed_block::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - lines
    - width
    - CroppedArray2DRef
    - memset
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::reset()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: XTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:344,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:346,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:347,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:350,1
    - Dst: numMCUs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:351,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetY
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:356,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:365,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:380,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: idx
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ' strip'
    - cur_line
    - idx
    argTypes:
    - FujiStrip
    - int
    - T
    assertStmts:
    - condition: (MCU<Tag> == strip.h.MCU)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 388
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 388
    functionName: rawspeed::fuji_compressed_block::copy_line
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - getAsCFAColors
    - out
    - lines
    - idx
    - XTransPhase
    - numMCUs
    - __builtin_unreachable
    - std::array::data
    - assert
    - CFA
    - CroppedArray2DRef
    - offsetY
    - offsetX
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line(const FujiStrip& strip, int
      cur_line,\n                                      T idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: rawspeed::fuji_compressed_block::copy_line_to_xtrans
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_xtrans(const FujiStrip& strip,\n
      \                                               int cur_line) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: rawspeed::fuji_compressed_block::copy_line_to_bayer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_bayer(const FujiStrip& strip,\n
      \                                              int cur_line) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:413,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:414,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:415,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' pump'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: rawspeed::fuji_compressed_block::fuji_zerobits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - skipBitsNoFill
    - peekBitsNoFill
    - fill
    - std::countl_zero
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_zerobits(BitStreamerMSB& pump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:433,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:434,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:438,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value1
    - value2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - std::max
    - invariant
    - std::countl_zero
    - std::min
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:447,1
    - Dst: rawspeed::fuji_compressed_block::fuji_zerobits
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:449,1
    - Dst: bitDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:454,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:464,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:468,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:477,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - grad
    - interp_val
    - ' grads'
    argTypes:
    - int
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 502
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - std::min
    - ThrowRDE
    - bitDiff
    - rawspeed::fuji_compressed_block::fuji_zerobits
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample(int grad, int interp_val,\n
      \                                         std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:507,1
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: rawspeed::fuji_compressed_block::fuji_quant_gradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - qTableLookup
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_quant_gradient(int v1, int v2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:514,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:515,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:516,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:517,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:519,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:520,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:521,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:526,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:530,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 543
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - std::max
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_even_inner(xt_lines
      c,\n                                                            int col) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:548,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:549,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:550,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:551,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:552,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:555,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - std::minmax
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_odd_inner(xt_lines
      c,\n                                                           int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:568,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_even(\n    xt_lines
      c, int col, std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:575,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_odd(xt_lines c, int
      col,\n                                              std::array<int_pair, 41>&
      grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_interpolation_even(xt_lines
      c,\n                                                      int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: rawspeed::fuji_compressed_block::fuji_extend_generic
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - width
    - lines
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_generic(int start, int end)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: rawspeed::fuji_compressed_block::fuji_extend_red
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_red() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: rawspeed::fuji_compressed_block::fuji_extend_green
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_green() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: rawspeed::fuji_compressed_block::fuji_extend_blue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_blue() const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:609,1
    - Dst: func_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:626,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:635,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:645,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:646,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:656,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:658,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:676,1
    - Dst: ColorCounter
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:678,1
    - Dst: static_cast<xt_lines>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:679,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: pass
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_red
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:691,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_green
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:694,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_blue
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:697,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - func_even
    - cur_line
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 704
    functionName: rawspeed::fuji_compressed_block::fuji_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - Array2DRef::height
    - __builtin_unreachable
    - rawspeed::fuji_compressed_block::fuji_extend_red
    - static_cast<xt_lines>
    - CurLineForColor
    - static_cast<uint8_t>
    - func_even
    - rawspeed::fuji_compressed_block::fuji_extend_blue
    - std::array::begin
    - implicit_cast<uint16_t>
    - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    - getAsCFAColors
    - lines
    - std::fill
    - ColorCounter
    - std::array::end
    - CFA
    - rawspeed::fuji_compressed_block::fuji_extend_green
    - pass
    - std::array::data
    - invariant
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_decode_block(T func_even,\n                                         [[maybe_unused]]
      int cur_line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:707,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:714,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:715,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:719,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 7
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: rawspeed::fuji_compressed_block::xtrans_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    - invariant
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::xtrans_decode_block(int cur_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:725,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_bayer_decode_block(int cur_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:744,1
    - Dst: rawspeed::fuji_compressed_block::xtrans_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:746,1
    - Dst: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:748,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_xtrans
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:752,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_bayer
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:754,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:757,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:766,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:768,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:771,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - FujiStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 779
    functionName: rawspeed::fuji_compressed_block::fuji_decode_strip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line_to_bayer
    - memcpy
    - lines
    - CroppedArray2DRef
    - height
    - width
    - rawspeed::fuji_compressed_block::xtrans_decode_block
    - rawspeed::fuji_compressed_block::copy_line_to_xtrans
    - rawspeed::MSan::Allocated
    - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_decode_strip(const FujiStrip& strip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mRaw_
    - strips_
    - ' h_'
    argTypes:
    - RawImage
    - Array1DRef<const Array1DRef<const uint8_t>>
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void FujiDecompressorImpl::FujiDecompressorImpl(\n    RawImage mRaw_,
      Array1DRef<const Array1DRef<const uint8_t>> strips_,\n    const FujiDecompressor::FujiHeader&
      h_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:806,1
    - Dst: fuji_compressed_block::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:815,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:816,1
    - Dst: fuji_compressed_block::fuji_decode_strip
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:817,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 826
    functionName: rawspeed::FujiDecompressorImpl::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 1
    functionsReached:
    - setError
    - fuji_compressed_block::reset
    - BitStreamerMSB
    - __builtin_unreachable
    - getU16DataAsUncroppedArray2DRef
    - fuji_compressed_block::fuji_decode_strip
    - what
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FujiDecompressorImpl::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:833,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:836,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:837,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: rawspeed::FujiDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::FujiDecompressorImpl::decompressThread
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompress()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:845,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:846,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:846,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:847,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:848,1
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:850,1
    - Dst: rawspeed::FujiDecompressor::FujiHeader
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:852,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:854,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:856,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:857,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:860,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:864,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:864,1
    - Dst: getAsXTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:865,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:867,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:868,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:869,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:871,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:871,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:872,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:874,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:876,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:877,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:879,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:884,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:886,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:892,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:896,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:899,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:899,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 900
    functionName: rawspeed::FujiDecompressor::FujiDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getAsBayerPhase
    - std::move
    - setByteOrder
    - cfa::getSize
    - reserve
    - skipBytes
    - emplace_back
    - ThrowRDE
    - rawspeed::FujiDecompressor::FujiHeader
    - getDataType
    - getCpp
    - getAsXTransPhase
    - static_cast<int>
    - iPoint2D
    - std::vector::resize
    - getU32
    - getStream
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiDecompressor(RawImage img, ByteStream input_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const Array1DRef<const uint8_t>>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:905,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: FujiDecompressorImpl::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 909
    functionName: rawspeed::FujiDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - data
    - size
    - FujiDecompressorImpl::decompress
    - implicit_cast<Buffer::size_type>
    - Array1DRef<const Array1DRef<const uint8_t>>
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:913,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:913,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:914,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:914,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:915,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:915,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 918
    functionName: FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getU16
    - getByte
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:924,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:925,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:931,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:933,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 938
    functionName: FujiDecompressor::FujiHeader::operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - rawspeed::lineHeight
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiHeader::operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(const FujiStrip&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& operator=(const FujiStrip&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(const FujiStrip&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(FujiStrip&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' h_'
    - block
    - input_
    argTypes:
    - FujiDecompressor::FujiHeader
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void FujiStrip(const FujiDecompressor::FujiHeader& h_, int block,\n
      \           Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: rawspeed::lineHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineHeight()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: rawspeed::height
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:146,1
    - Dst: rawspeed::offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: rawspeed::width
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::offsetX
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - MCU
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: rawspeed::numMCUs
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::width
    - rawspeed::invariant
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D numMCUs(iPoint2D MCU) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:159,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: rawspeed::offsetY
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::height
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: int offsetY(int line = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: rawspeed::offsetX
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int offsetX() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:171,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - cur_val
    argTypes:
    - fuji_compressed_params
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: rawspeed::GetGradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - rawspeed::implicit_cast
    linkageType: ''
    returnType: int8_t
    signature: int8_t GetGradient(const fuji_compressed_params& p, int cur_val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:193,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:211,1
    - Dst: GetGradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 237
    functionName: rawspeed::fuji_compressed_params::fuji_compressed_params
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - GetGradient
    - resize
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_params::fuji_compressed_params(\n    const FujiDecompressor::FujiHeader&
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: rawspeed::fuji_compressed_params::qTableLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t fuji_compressed_params::qTableLookup(int cur_val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - img_
    - ' header_'
    - ' common_info_'
    argTypes:
    - Array2DRef<uint16_t>
    - FujiDecompressor::FujiHeader
    - fuji_compressed_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: rawspeed::fuji_compressed_block::fuji_compressed_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_compressed_block(\n    Array2DRef<uint16_t>
      img_, const FujiDecompressor::FujiHeader& header_,\n    const fuji_compressed_params&
      common_info_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: memset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 335
    functionName: rawspeed::fuji_compressed_block::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - lines
    - width
    - CroppedArray2DRef
    - memset
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::reset()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: XTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:344,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:346,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:347,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:350,1
    - Dst: numMCUs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:351,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetY
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:356,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:365,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:380,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: idx
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ' strip'
    - cur_line
    - idx
    argTypes:
    - FujiStrip
    - int
    - T
    assertStmts:
    - condition: (MCU<Tag> == strip.h.MCU)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 388
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 388
    functionName: rawspeed::fuji_compressed_block::copy_line
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - getAsCFAColors
    - out
    - lines
    - idx
    - XTransPhase
    - numMCUs
    - __builtin_unreachable
    - std::array::data
    - assert
    - CFA
    - CroppedArray2DRef
    - offsetY
    - offsetX
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line(const FujiStrip& strip, int
      cur_line,\n                                      T idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: rawspeed::fuji_compressed_block::copy_line_to_xtrans
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_xtrans(const FujiStrip& strip,\n
      \                                               int cur_line) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: rawspeed::fuji_compressed_block::copy_line_to_bayer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_bayer(const FujiStrip& strip,\n
      \                                              int cur_line) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:413,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:414,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:415,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' pump'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: rawspeed::fuji_compressed_block::fuji_zerobits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - skipBitsNoFill
    - peekBitsNoFill
    - fill
    - std::countl_zero
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_zerobits(BitStreamerMSB& pump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:433,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:434,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:438,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value1
    - value2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - std::max
    - invariant
    - std::countl_zero
    - std::min
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:447,1
    - Dst: rawspeed::fuji_compressed_block::fuji_zerobits
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:449,1
    - Dst: bitDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:454,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:464,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:468,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:477,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - grad
    - interp_val
    - ' grads'
    argTypes:
    - int
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 502
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - std::abs
    - std::min
    - ThrowRDE
    - bitDiff
    - rawspeed::fuji_compressed_block::fuji_zerobits
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample(int grad, int interp_val,\n
      \                                         std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:507,1
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: rawspeed::fuji_compressed_block::fuji_quant_gradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - qTableLookup
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_quant_gradient(int v1, int v2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:514,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:515,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:516,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:517,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:519,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:520,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:521,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:526,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:530,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 543
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - std::abs
    - std::max
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_even_inner(xt_lines
      c,\n                                                            int col) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:548,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:549,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:550,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:551,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:552,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:555,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - std::minmax
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_odd_inner(xt_lines
      c,\n                                                           int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:568,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_even(\n    xt_lines
      c, int col, std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:575,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_odd(xt_lines c, int
      col,\n                                              std::array<int_pair, 41>&
      grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_interpolation_even(xt_lines
      c,\n                                                      int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: rawspeed::fuji_compressed_block::fuji_extend_generic
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - width
    - lines
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_generic(int start, int end)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: rawspeed::fuji_compressed_block::fuji_extend_red
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_red() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: rawspeed::fuji_compressed_block::fuji_extend_green
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_green() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: rawspeed::fuji_compressed_block::fuji_extend_blue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_blue() const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:609,1
    - Dst: func_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:626,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:635,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:645,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:646,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:656,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:658,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:676,1
    - Dst: ColorCounter
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:678,1
    - Dst: static_cast<xt_lines>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:679,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: pass
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_red
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:691,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_green
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:694,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_blue
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:697,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - func_even
    - cur_line
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 704
    functionName: rawspeed::fuji_compressed_block::fuji_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached:
    - Array2DRef::height
    - __builtin_unreachable
    - rawspeed::fuji_compressed_block::fuji_extend_red
    - static_cast<xt_lines>
    - CurLineForColor
    - static_cast<uint8_t>
    - func_even
    - rawspeed::fuji_compressed_block::fuji_extend_blue
    - std::array::begin
    - implicit_cast<uint16_t>
    - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    - getAsCFAColors
    - lines
    - std::fill
    - ColorCounter
    - std::array::end
    - CFA
    - rawspeed::fuji_compressed_block::fuji_extend_green
    - pass
    - std::array::data
    - invariant
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_decode_block(T func_even,\n                                         [[maybe_unused]]
      int cur_line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:707,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:714,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:715,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:719,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 7
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: rawspeed::fuji_compressed_block::xtrans_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    - invariant
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::xtrans_decode_block(int cur_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:725,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_bayer_decode_block(int cur_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:744,1
    - Dst: rawspeed::fuji_compressed_block::xtrans_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:746,1
    - Dst: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:748,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_xtrans
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:752,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_bayer
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:754,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:757,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:766,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:768,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:771,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - FujiStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 779
    functionName: rawspeed::fuji_compressed_block::fuji_decode_strip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line_to_bayer
    - memcpy
    - lines
    - CroppedArray2DRef
    - height
    - width
    - rawspeed::fuji_compressed_block::xtrans_decode_block
    - rawspeed::fuji_compressed_block::copy_line_to_xtrans
    - rawspeed::MSan::Allocated
    - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_decode_strip(const FujiStrip& strip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mRaw_
    - strips_
    - ' h_'
    argTypes:
    - RawImage
    - Array1DRef<const Array1DRef<const uint8_t>>
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void FujiDecompressorImpl::FujiDecompressorImpl(\n    RawImage mRaw_,
      Array1DRef<const Array1DRef<const uint8_t>> strips_,\n    const FujiDecompressor::FujiHeader&
      h_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:806,1
    - Dst: fuji_compressed_block::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:815,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:816,1
    - Dst: fuji_compressed_block::fuji_decode_strip
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:817,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 826
    functionName: rawspeed::FujiDecompressorImpl::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - setError
    - fuji_compressed_block::reset
    - BitStreamerMSB
    - __builtin_unreachable
    - getU16DataAsUncroppedArray2DRef
    - fuji_compressed_block::fuji_decode_strip
    - what
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FujiDecompressorImpl::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:833,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:836,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:837,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: rawspeed::FujiDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::FujiDecompressorImpl::decompressThread
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(const FujiStrip&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FujiStrip(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& operator=(const FujiStrip&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(const FujiStrip&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(FujiStrip&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FujiStrip
    signature: FujiStrip & operator=(FujiStrip&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' h_'
    - block
    - input_
    argTypes:
    - FujiDecompressor::FujiHeader
    - int
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: rawspeed::FujiStrip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void FujiStrip(const FujiDecompressor::FujiHeader& h_, int block,\n
      \           Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: rawspeed::lineHeight
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineHeight()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: rawspeed::height
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void height() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:146,1
    - Dst: rawspeed::offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: rawspeed::width
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::offsetX
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:152,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:153,1
    - Dst: rawspeed::width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - MCU
    argTypes:
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: rawspeed::numMCUs
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::width
    - rawspeed::invariant
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D numMCUs(iPoint2D MCU) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:159,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:160,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: rawspeed::offsetY
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::lineHeight
    - rawspeed::height
    - rawspeed::invariant
    linkageType: ''
    returnType: int
    signature: int offsetY(int line = 0) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: rawspeed::offsetX
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int offsetX() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:171,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' p'
    - cur_val
    argTypes:
    - fuji_compressed_params
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: rawspeed::GetGradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    - rawspeed::implicit_cast
    linkageType: ''
    returnType: int8_t
    signature: int8_t GetGradient(const fuji_compressed_params& p, int cur_val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:193,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:211,1
    - Dst: GetGradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 237
    functionName: rawspeed::fuji_compressed_params::fuji_compressed_params
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - GetGradient
    - resize
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_params::fuji_compressed_params(\n    const FujiDecompressor::FujiHeader&
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: rawspeed::fuji_compressed_params::qTableLookup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t fuji_compressed_params::qTableLookup(int cur_val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - img_
    - ' header_'
    - ' common_info_'
    argTypes:
    - Array2DRef<uint16_t>
    - FujiDecompressor::FujiHeader
    - fuji_compressed_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: rawspeed::fuji_compressed_block::fuji_compressed_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_compressed_block(\n    Array2DRef<uint16_t>
      img_, const FujiDecompressor::FujiHeader& header_,\n    const fuji_compressed_params&
      common_info_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:307,1
    - Dst: memset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:313,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:316,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:317,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 335
    functionName: rawspeed::fuji_compressed_block::reset
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - lines
    - width
    - CroppedArray2DRef
    - memset
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::reset()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: XTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:342,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:344,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:346,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:347,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:350,1
    - Dst: numMCUs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:351,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetX
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:355,1
    - Dst: offsetY
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:356,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:365,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:380,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    - Dst: idx
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ' strip'
    - cur_line
    - idx
    argTypes:
    - FujiStrip
    - int
    - T
    assertStmts:
    - condition: (MCU<Tag> == strip.h.MCU)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 388
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 388
    functionName: rawspeed::fuji_compressed_block::copy_line
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - getAsCFAColors
    - out
    - lines
    - idx
    - XTransPhase
    - numMCUs
    - __builtin_unreachable
    - std::array::data
    - assert
    - CFA
    - CroppedArray2DRef
    - offsetY
    - offsetX
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line(const FujiStrip& strip, int
      cur_line,\n                                      T idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: rawspeed::fuji_compressed_block::copy_line_to_xtrans
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_xtrans(const FujiStrip& strip,\n
      \                                               int cur_line) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::copy_line
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' strip'
    - cur_line
    argTypes:
    - FujiStrip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: rawspeed::fuji_compressed_block::copy_line_to_bayer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::copy_line_to_bayer(const FujiStrip& strip,\n
      \                                              int cur_line) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:413,1
    - Dst: peekBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:414,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:415,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' pump'
    argTypes:
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: rawspeed::fuji_compressed_block::fuji_zerobits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - skipBitsNoFill
    - peekBitsNoFill
    - fill
    - std::countl_zero
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_zerobits(BitStreamerMSB& pump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:433,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:434,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:436,1
    - Dst: std::countl_zero
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:437,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:438,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value1
    - value2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned>
    - std::max
    - invariant
    - std::countl_zero
    - std::min
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int
      value2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:447,1
    - Dst: rawspeed::fuji_compressed_block::fuji_zerobits
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:449,1
    - Dst: bitDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:454,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:462,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:464,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:468,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:477,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - grad
    - interp_val
    - ' grads'
    argTypes:
    - int
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 502
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - std::abs
    - std::min
    - ThrowRDE
    - bitDiff
    - rawspeed::fuji_compressed_block::fuji_zerobits
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample(int grad, int interp_val,\n
      \                                         std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:507,1
    - Dst: qTableLookup
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: rawspeed::fuji_compressed_block::fuji_quant_gradient
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - qTableLookup
    linkageType: ''
    returnType: int
    signature: int fuji_compressed_block::fuji_quant_gradient(int v1, int v2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:514,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:515,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:516,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:517,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:519,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:520,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:521,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:526,1
    - Dst: std::max
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:530,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 543
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - std::abs
    - std::max
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_even_inner(xt_lines
      c,\n                                                            int col) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:548,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:549,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:550,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:551,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:552,1
    - Dst: std::minmax
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:555,1
    - Dst: rawspeed::fuji_compressed_block::fuji_quant_gradient
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - std::minmax
    - lines
    - rawspeed::fuji_compressed_block::fuji_quant_gradient
    linkageType: ''
    returnType: std::pair<int, int>
    signature: "std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_odd_inner(xt_lines
      c,\n                                                           int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:568,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_even(\n    xt_lines
      c, int col, std::array<int_pair, 41>& grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:575,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - col
    - ' grads'
    argTypes:
    - xt_lines
    - int
    - std::array<int_pair, 41>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_sample
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_sample_odd(xt_lines c, int
      col,\n                                              std::array<int_pair, 41>&
      grads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - col
    argTypes:
    - xt_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
    linkageType: ''
    returnType: int
    signature: "int fuji_compressed_block::fuji_decode_interpolation_even(xt_lines
      c,\n                                                      int col) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:588,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: rawspeed::fuji_compressed_block::fuji_extend_generic
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 9
    functionsReached:
    - width
    - lines
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_generic(int start, int end)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: rawspeed::fuji_compressed_block::fuji_extend_red
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_red() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: rawspeed::fuji_compressed_block::fuji_extend_green
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_green() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_generic
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: rawspeed::fuji_compressed_block::fuji_extend_blue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_extend_generic
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_extend_blue() const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:609,1
    - Dst: func_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:626,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:627,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_odd
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:635,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:636,1
    - Dst: getAsCFAColors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:645,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:646,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: std::array::end
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:649,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:656,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:658,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:676,1
    - Dst: ColorCounter
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:678,1
    - Dst: static_cast<xt_lines>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:679,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:685,1
    - Dst: CFA
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:686,1
    - Dst: pass
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: CurLineForColor
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:687,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_red
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:691,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_green
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:694,1
    - Dst: rawspeed::fuji_compressed_block::fuji_extend_blue
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:697,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - func_even
    - cur_line
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 704
    functionName: rawspeed::fuji_compressed_block::fuji_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 6
    functionsReached:
    - Array2DRef::height
    - __builtin_unreachable
    - rawspeed::fuji_compressed_block::fuji_extend_red
    - static_cast<xt_lines>
    - CurLineForColor
    - static_cast<uint8_t>
    - func_even
    - rawspeed::fuji_compressed_block::fuji_extend_blue
    - std::array::begin
    - implicit_cast<uint16_t>
    - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
    - getAsCFAColors
    - lines
    - std::fill
    - ColorCounter
    - std::array::end
    - CFA
    - rawspeed::fuji_compressed_block::fuji_extend_green
    - pass
    - std::array::data
    - invariant
    linkageType: ''
    returnType: void
    signature: "void fuji_compressed_block::fuji_decode_block(T func_even,\n                                         [[maybe_unused]]
      int cur_line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:707,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:714,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:715,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:719,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 7
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: rawspeed::fuji_compressed_block::xtrans_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
    - invariant
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::xtrans_decode_block(int cur_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:725,1
    - Dst: rawspeed::fuji_compressed_block::fuji_decode_sample_even
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::fuji_compressed_block::fuji_decode_block
    - rawspeed::fuji_compressed_block::fuji_decode_sample_even
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_bayer_decode_block(int cur_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:744,1
    - Dst: rawspeed::fuji_compressed_block::xtrans_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:746,1
    - Dst: rawspeed::fuji_compressed_block::fuji_bayer_decode_block
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:748,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_xtrans
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:752,1
    - Dst: rawspeed::fuji_compressed_block::copy_line_to_bayer
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:754,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:757,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:762,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:766,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:768,1
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:771,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: lines
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' strip'
    argTypes:
    - FujiStrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 779
    functionName: rawspeed::fuji_compressed_block::fuji_decode_strip
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::fuji_compressed_block::copy_line_to_bayer
    - memcpy
    - lines
    - CroppedArray2DRef
    - height
    - width
    - rawspeed::fuji_compressed_block::xtrans_decode_block
    - rawspeed::fuji_compressed_block::copy_line_to_xtrans
    - rawspeed::MSan::Allocated
    - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
    linkageType: ''
    returnType: void
    signature: void fuji_compressed_block::fuji_decode_strip(const FujiStrip& strip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mRaw_
    - strips_
    - ' h_'
    argTypes:
    - RawImage
    - Array1DRef<const Array1DRef<const uint8_t>>
    - FujiDecompressor::FujiHeader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void FujiDecompressorImpl::FujiDecompressorImpl(\n    RawImage mRaw_,
      Array1DRef<const Array1DRef<const uint8_t>> strips_,\n    const FujiDecompressor::FujiHeader&
      h_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:806,1
    - Dst: fuji_compressed_block::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:815,1
    - Dst: BitStreamerMSB
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:816,1
    - Dst: fuji_compressed_block::fuji_decode_strip
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:817,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:820,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 826
    functionName: rawspeed::FujiDecompressorImpl::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 3
    functionsReached:
    - setError
    - fuji_compressed_block::reset
    - BitStreamerMSB
    - __builtin_unreachable
    - getU16DataAsUncroppedArray2DRef
    - fuji_compressed_block::fuji_decode_strip
    - what
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::FujiDecompressorImpl::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:833,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:836,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:837,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: rawspeed::FujiDecompressorImpl::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::FujiDecompressorImpl::decompressThread
    linkageType: ''
    returnType: void
    signature: void FujiDecompressorImpl::decompress()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:845,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:846,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:846,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:847,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:848,1
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:850,1
    - Dst: rawspeed::FujiDecompressor::FujiHeader
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:852,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:854,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:856,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:857,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:860,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:864,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:864,1
    - Dst: getAsXTransPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:865,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:867,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:868,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:869,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:871,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:871,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:872,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:874,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:876,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:877,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:879,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:884,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:886,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:892,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:896,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:899,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:899,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 900
    functionName: rawspeed::FujiDecompressor::FujiDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getAsBayerPhase
    - std::move
    - setByteOrder
    - cfa::getSize
    - reserve
    - skipBytes
    - emplace_back
    - ThrowRDE
    - rawspeed::FujiDecompressor::FujiHeader
    - getDataType
    - getCpp
    - getAsXTransPhase
    - static_cast<int>
    - iPoint2D
    - std::vector::resize
    - getU32
    - getStream
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiDecompressor(RawImage img, ByteStream input_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const Array1DRef<const uint8_t>>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:905,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:906,1
    - Dst: FujiDecompressorImpl::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 909
    functionName: rawspeed::FujiDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - data
    - size
    - FujiDecompressorImpl::decompress
    - implicit_cast<Buffer::size_type>
    - Array1DRef<const Array1DRef<const uint8_t>>
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::decompress() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:912,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:913,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:913,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:914,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:914,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:915,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:915,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 918
    functionName: FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getU16
    - getByte
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:924,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:925,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:931,1
    - Dst: rawspeed::lineHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp:933,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 938
    functionName: FujiDecompressor::FujiHeader::operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - rawspeed::lineHeight
    linkageType: ''
    returnType: void
    signature: void FujiDecompressor::FujiHeader::operator bool() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:48,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:52,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:56,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:60,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - img
    - bs
    - bps_
    - uncorrectedRawValues_
    argTypes:
    - RawImage
    - ByteStream
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: rawspeed::KodakDecompressor::KodakDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - check
    - getDataType
    - getCpp
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: void
    signature: "void KodakDecompressor::KodakDecompressor(RawImage img, ByteStream
      bs, int bps_,\n                                     bool uncorrectedRawValues_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:69,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:70,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:71,1
    - Dst: segment::size
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:74,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:76,1
    - Dst: __sanitizer_annotate_contiguous_container
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::end
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::end
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:88,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:89,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:92,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:92,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:93,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:93,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:98,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:108,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:109,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:113,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - bsize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 118
    functionName: rawspeed::KodakDecompressor::decodeSegment
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - __sanitizer_annotate_contiguous_container
    - static_cast<int>
    - peekByte
    - segment::end
    - static_cast<uint32_t>
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - static_cast<uint64_t>
    - invariant
    - implicit_cast<int16_t>
    - extractHighBits
    - segment::begin
    - __has_feature
    - segment::size
    - getByte
    linkageType: ''
    returnType: KodakDecompressor::segment
    signature: KodakDecompressor::segment KodakDecompressor::decodeSegment(const uint32_t
      bsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:121,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:124,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:125,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:126,1
    - Dst: rawspeed::KodakDecompressor::decodeSegment
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:128,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:131,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:138,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:141,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:141,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:143,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:143,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:144,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: rawspeed::KodakDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::KodakDecompressor::decodeSegment
    - reinterpret_cast<std::byte*>
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - out
    - isIntN
    - setWithLookUp
    - std::min
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void KodakDecompressor::decompress()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:48,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:52,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:56,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:60,1
    - Dst: check
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - img
    - bs
    - bps_
    - uncorrectedRawValues_
    argTypes:
    - RawImage
    - ByteStream
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: rawspeed::KodakDecompressor::KodakDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - check
    - getDataType
    - getCpp
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: void
    signature: "void KodakDecompressor::KodakDecompressor(RawImage img, ByteStream
      bs, int bps_,\n                                     bool uncorrectedRawValues_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:69,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:70,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:71,1
    - Dst: segment::size
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:74,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:76,1
    - Dst: __sanitizer_annotate_contiguous_container
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::end
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: segment::end
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:78,1
    - Dst: peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:88,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:89,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:92,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:92,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:93,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:93,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:98,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:102,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:108,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:109,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:113,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - bsize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 118
    functionName: rawspeed::KodakDecompressor::decodeSegment
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int64_t>
    - __sanitizer_annotate_contiguous_container
    - static_cast<int>
    - peekByte
    - segment::end
    - static_cast<uint32_t>
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - static_cast<uint64_t>
    - invariant
    - implicit_cast<int16_t>
    - extractHighBits
    - segment::begin
    - __has_feature
    - segment::size
    - getByte
    linkageType: ''
    returnType: KodakDecompressor::segment
    signature: KodakDecompressor::segment KodakDecompressor::decodeSegment(const uint32_t
      bsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:121,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:124,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:125,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:126,1
    - Dst: rawspeed::KodakDecompressor::decodeSegment
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:128,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:131,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:138,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:141,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:141,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:143,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:143,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:144,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: rawspeed::KodakDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::KodakDecompressor::decodeSegment
    - reinterpret_cast<std::byte*>
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - out
    - isIntN
    - setWithLookUp
    - std::min
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void KodakDecompressor::decompress()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:111,1
    - Dst: ByteStream::peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:112,1
    - Dst: static_cast<JpegMarker>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: rawspeed::peekMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 0
    functionsReached:
    - static_cast<JpegMarker>
    - ByteStream::peekByte
    linkageType: ''
    returnType: Optional<JpegMarker>
    signature: Optional<JpegMarker> peekMarker(ByteStream input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:121,1
    - Dst: rawspeed::peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:122,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - input
    - skipPadding
    argTypes:
    - ByteStream
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: rawspeed::advanceToNextMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 0
    functionsReached:
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - rawspeed::peekMarker
    linkageType: ''
    returnType: Optional<ByteStream>
    signature: "Optional<ByteStream> advanceToNextMarker(ByteStream input,\n                                                bool
      skipPadding)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - JpegMarker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: rawspeed::getRestartMarkerNumber
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Optional<int>
    signature: Optional<int> getRestartMarkerNumber(JpegMarker m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:111,1
    - Dst: ByteStream::peekByte
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:112,1
    - Dst: static_cast<JpegMarker>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: rawspeed::peekMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 1
    functionsReached:
    - static_cast<JpegMarker>
    - ByteStream::peekByte
    linkageType: ''
    returnType: Optional<JpegMarker>
    signature: Optional<JpegMarker> peekMarker(ByteStream input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:121,1
    - Dst: rawspeed::peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:122,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - input
    - skipPadding
    argTypes:
    - ByteStream
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: rawspeed::advanceToNextMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 0
    functionsReached:
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - rawspeed::peekMarker
    linkageType: ''
    returnType: Optional<ByteStream>
    signature: "Optional<ByteStream> advanceToNextMarker(ByteStream input,\n                                                bool
      skipPadding)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - JpegMarker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: rawspeed::getRestartMarkerNumber
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Optional<int>
    signature: Optional<int> getRestartMarkerNumber(JpegMarker m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:55,1
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:55,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:57,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - img
    - metaData
    argTypes:
    - RawImage
    - Optional<ByteStream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: rawspeed::PentaxDecompressor::PentaxDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - ThrowRDE
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void PentaxDecompressor::PentaxDecompressor(RawImage img,\n                                       Optional<ByteStream>
      metaData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:74,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - HuffmanCode::setCodeValues
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - invariant
    linkageType: ''
    returnType: HuffmanCode<BaselineCodeTag>
    signature: HuffmanCode<BaselineCodeTag> PentaxDecompressor::SetupPrefixCodeDecoder_Legacy()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:87,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:89,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:94,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:99,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:103,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:108,1
    - Dst: std::vector::at
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:109,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:112,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:113,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:114,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:115,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:118,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:131,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:131,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:135,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:135,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (nCodesPerLength[0] == 0)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    - condition: (nCodesPerLength.size() == 17)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    - condition: (codeValues.size() == nCodes)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 139
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 139
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - ByteStream::getU16
    - std::vector::data
    - HuffmanCode::setCodeValues
    - Buffer
    - Array1DRef<const uint8_t>
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - std::vector::at
    - invariant
    - extractHighBits
    - implicit_cast<uint8_t>
    - std::vector::resize
    linkageType: ''
    returnType: HuffmanCode<BaselineCodeTag>
    signature: HuffmanCode<BaselineCodeTag> PentaxDecompressor::SetupPrefixCodeDecoder_Modern(ByteStream
      stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:146,1
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:148,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:150,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - metaData
    argTypes:
    - Optional<ByteStream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
    - PrefixCodeDecoder::setup
    - std::move
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: PrefixCodeDecoder<> PentaxDecompressor::SetupPrefixCodeDecoder(Optional<ByteStream>
      metaData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:157,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:159,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:159,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:160,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:160,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:161,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:161,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:163,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:164,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:167,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:167,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:169,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:170,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:172,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:173,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:174,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: rawspeed::PentaxDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - decodeDifference
    - out
    - ByteStream::peekRemainingBuffer
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void PentaxDecompressor::decompress(ByteStream data) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:55,1
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:55,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:57,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - img
    - metaData
    argTypes:
    - RawImage
    - Optional<ByteStream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: rawspeed::PentaxDecompressor::PentaxDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - ThrowRDE
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void PentaxDecompressor::PentaxDecompressor(RawImage img,\n                                       Optional<ByteStream>
      metaData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:73,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:74,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 1
    functionsReached:
    - HuffmanCode::setCodeValues
    - data
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - invariant
    linkageType: ''
    returnType: HuffmanCode<BaselineCodeTag>
    signature: HuffmanCode<BaselineCodeTag> PentaxDecompressor::SetupPrefixCodeDecoder_Legacy()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:87,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:89,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:94,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:99,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:103,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:108,1
    - Dst: std::vector::at
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:109,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:112,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:113,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:114,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:115,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:118,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:131,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:131,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:135,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:135,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (nCodesPerLength[0] == 0)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    - condition: (nCodesPerLength.size() == 17)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    - condition: (codeValues.size() == nCodes)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 139
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 139
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - ByteStream::getU16
    - std::vector::data
    - HuffmanCode::setCodeValues
    - Buffer
    - Array1DRef<const uint8_t>
    - std::vector::reserve
    - std::vector::size
    - HuffmanCode::setNCodesPerLength
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - std::vector::at
    - invariant
    - extractHighBits
    - implicit_cast<uint8_t>
    - std::vector::resize
    linkageType: ''
    returnType: HuffmanCode<BaselineCodeTag>
    signature: HuffmanCode<BaselineCodeTag> PentaxDecompressor::SetupPrefixCodeDecoder_Modern(ByteStream
      stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:146,1
    - Dst: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:148,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:150,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - metaData
    argTypes:
    - Optional<ByteStream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
    - PrefixCodeDecoder::setup
    - std::move
    - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: PrefixCodeDecoder<> PentaxDecompressor::SetupPrefixCodeDecoder(Optional<ByteStream>
      metaData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:157,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:159,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:159,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:160,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:160,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:161,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:161,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:163,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:164,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:167,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:167,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:169,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:170,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:172,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:173,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:174,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: rawspeed::PentaxDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - decodeDifference
    - out
    - ByteStream::peekRemainingBuffer
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void PentaxDecompressor::decompress(ByteStream data) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bps_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed::PacketDsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PacketDsc(int bps_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:73,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:74,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:74,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:75,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:87,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:91,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:96,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:96,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:97,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:98,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:102,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:108,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:112,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:112,1
    - Dst: rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - img
    - input_
    - bps_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 115
    functionName: rawspeed::PanasonicV5Decompressor::PanasonicV5Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - invariant
    - roundUpDivisionSafe
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV5Decompressor::PanasonicV5Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 uint32_t
      bps_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:119,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:122,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:122,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:123,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:123,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:124,1
    - Dst: std::numeric_limits<size_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:124,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:125,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:128,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:129,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:129,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:132,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:132,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:134,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:135,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:137,1
    - Dst: rawspeed::PanasonicV5Decompressor::Block
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:140,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:140,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:141,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:141,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:142,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:142,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:145,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ' dsc'
    argTypes:
    - PacketDsc
    assertStmts:
    - condition: (numBlocks <= std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (numBlocks <= std::numeric_limits<size_t>::max())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (blocks.size() == numBlocks)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - dim::area
    - reserve
    - getRemainSize
    - size
    - back
    - rawspeed::PanasonicV5Decompressor::Block
    - std::numeric_limits<size_t>::max
    - implicit_cast<size_t>
    - assert
    - pixelToCoordinate
    - invariant
    - std::numeric_limits<uint32_t>::max
    - std::back_inserter
    - iPoint2D
    - std::generate_n
    - getStream
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::chopInputIntoBlocks(const PacketDsc&
      dsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:155,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:155,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:156,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:156,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:160,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:161,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:164,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:171,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:171,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:172,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:172,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:175,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:175,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buf.size() == BlockSize)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (buf.empty())
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - implicit_cast<Buffer::size_type>
    - empty
    - reserve
    - getRemainSize
    - size
    - ByteStream
    - DataBuffer
    - end
    - Buffer
    - data
    - Buffer::getSize
    - assert
    - Buffer::end
    - getBuffer
    - invariant
    - insert
    linkageType: ''
    returnType: void
    signature: void parseBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - block_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: rawspeed::PanasonicV5Decompressor::ProxyStream::ProxyStream
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProxyStream(ByteStream block_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parseBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: '& getStream()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - parseBlock
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream & getStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:197,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:199,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:199,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:202,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:203,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:203,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:206,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' bs'
    - row
    - col
    argTypes:
    - BitStreamerLSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: rawspeed::PanasonicV5Decompressor::processPixelPacket
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getFillLevel
    - implicit_cast<int>
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV5Decompressor::processPixelPacket(BitStreamerLSB& bs,\n
      \                                                       int row,\n                                                        int
      col) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProxyStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:215,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:228,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:229,1
    - Dst: rawspeed::PanasonicV5Decompressor::processPixelPacket
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 234
    functionName: rawspeed::PanasonicV5Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::processPixelPacket
    - ProxyStream::getStream
    - invariant
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::processBlock(const Block& block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: rawspeed::PanasonicV5Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:245,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: rawspeed::PanasonicV5Decompressor::decompressInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::processBlock
    - data
    - Array1DRef
    - size
    - implicit_cast<int>
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::decompressInternal() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV5Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:256,1
    - Dst: rawspeed::PanasonicV5Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:259,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: rawspeed::PanasonicV5Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::decompressInternal
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::decompress() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bps_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rawspeed::PacketDsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PacketDsc(int bps_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:73,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:74,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:74,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:75,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:87,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:91,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:96,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:96,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:97,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:98,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:102,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:108,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:112,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:112,1
    - Dst: rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - img
    - input_
    - bps_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 115
    functionName: rawspeed::PanasonicV5Decompressor::PanasonicV5Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - invariant
    - roundUpDivisionSafe
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV5Decompressor::PanasonicV5Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 uint32_t
      bps_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:119,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:122,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:122,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:123,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:123,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:124,1
    - Dst: std::numeric_limits<size_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:124,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:125,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:128,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:128,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:129,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:129,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:132,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:132,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:134,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:135,1
    - Dst: pixelToCoordinate
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:137,1
    - Dst: rawspeed::PanasonicV5Decompressor::Block
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:140,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:140,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:141,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:141,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:142,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:142,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:145,1
    - Dst: back
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ' dsc'
    argTypes:
    - PacketDsc
    assertStmts:
    - condition: (numBlocks <= std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (numBlocks <= std::numeric_limits<size_t>::max())
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (blocks.size() == numBlocks)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - dim::area
    - reserve
    - getRemainSize
    - size
    - back
    - rawspeed::PanasonicV5Decompressor::Block
    - std::numeric_limits<size_t>::max
    - implicit_cast<size_t>
    - assert
    - pixelToCoordinate
    - invariant
    - std::numeric_limits<uint32_t>::max
    - std::back_inserter
    - iPoint2D
    - std::generate_n
    - getStream
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::chopInputIntoBlocks(const PacketDsc&
      dsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:155,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:155,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:156,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:156,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:160,1
    - Dst: getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:161,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:161,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:162,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:164,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:167,1
    - Dst: insert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: Buffer::end
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:169,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:171,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:171,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:172,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:172,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:175,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:175,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (buf.size() == BlockSize)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - condition: (buf.empty())
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Buffer::begin
    - implicit_cast<Buffer::size_type>
    - empty
    - reserve
    - getRemainSize
    - size
    - ByteStream
    - DataBuffer
    - end
    - Buffer
    - data
    - Buffer::getSize
    - assert
    - Buffer::end
    - getBuffer
    - invariant
    - insert
    linkageType: ''
    returnType: void
    signature: void parseBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - block_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: rawspeed::PanasonicV5Decompressor::ProxyStream::ProxyStream
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProxyStream(ByteStream block_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parseBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: '& getStream()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - parseBlock
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream & getStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:197,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:199,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:199,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:202,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:203,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:203,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:204,1
    - Dst: skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:206,1
    - Dst: getFillLevel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' bs'
    - row
    - col
    argTypes:
    - BitStreamerLSB
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: rawspeed::PanasonicV5Decompressor::processPixelPacket
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - getFillLevel
    - implicit_cast<int>
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - skipBitsNoFill
    - getBitsNoFill
    - fill
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV5Decompressor::processPixelPacket(BitStreamerLSB& bs,\n
      \                                                       int row,\n                                                        int
      col) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProxyStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:215,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:228,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:229,1
    - Dst: rawspeed::PanasonicV5Decompressor::processPixelPacket
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 234
    functionName: rawspeed::PanasonicV5Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::processPixelPacket
    - ProxyStream::getStream
    - invariant
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::processBlock(const Block& block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:243,1
    - Dst: rawspeed::PanasonicV5Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:245,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: rawspeed::PanasonicV5Decompressor::decompressInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::processBlock
    - data
    - Array1DRef
    - size
    - implicit_cast<int>
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::decompressInternal() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV5Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:256,1
    - Dst: rawspeed::PanasonicV5Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:259,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: rawspeed::PanasonicV5Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::decompressInternal
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV5Decompressor::decompress() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - bps_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: rawspeed::BlockDsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BlockDsc(int bps_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fillBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::pana_cs6_page_decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - fillBuffer
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder(ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rawspeed::nextpixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t nextpixel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:91,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:92,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: rawspeed::pana_cs6_page_decoder<12>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<12>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:116,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:117,1
    - Dst: BitStreamerLSB::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:118,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: rawspeed::pana_cs6_page_decoder<14>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - BitStreamerLSB::skipBitsNoFill
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<14>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fillBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::pana_cs6_page_decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - fillBuffer
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder(ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rawspeed::nextpixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t nextpixel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:91,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:92,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: rawspeed::pana_cs6_page_decoder<12>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<12>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:116,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:117,1
    - Dst: BitStreamerLSB::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:118,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: rawspeed::pana_cs6_page_decoder<14>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - BitStreamerLSB::skipBitsNoFill
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<14>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:140,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:141,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:141,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:154,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:157,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:158,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:163,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:167,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:169,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:172,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - img
    - input_
    - bps_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: rawspeed::PanasonicV6Decompressor::PanasonicV6Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV6Decompressor::PanasonicV6Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 uint32_t
      bps_)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:180,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:183,1
    - Dst: pana_cs6_page_decoder::nextpixel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:191,1
    - Dst: pana_cs6_page_decoder::nextpixel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:197,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:208,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:210,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:210,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:212,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:216,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - ' rowInput'
    - row
    - col
    argTypes:
    - ByteStream
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: rawspeed::PanasonicV6Decompressor::decompressBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getStream
    - getU16DataAsUncroppedArray2DRef
    - pana_cs6_page_decoder::nextpixel
    - out
    - static_cast<int>
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV6Decompressor::decompressBlock(ByteStream& rowInput,
      int row,\n                                         int col) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:224,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:228,1
    - Dst: rawspeed::PanasonicV6Decompressor::decompressBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed::PanasonicV6Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressBlock
    - getSubStream
    - invariant
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompressRow(int row) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV6Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:242,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: rawspeed::PanasonicV6Decompressor::decompressInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressRow
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompressInternal() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV6Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:253,1
    - Dst: rawspeed::PanasonicV6Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:256,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: rawspeed::PanasonicV6Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressInternal
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompress() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - bps_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: rawspeed::BlockDsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BlockDsc(int bps_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fillBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::pana_cs6_page_decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - fillBuffer
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder(ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rawspeed::nextpixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t nextpixel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:91,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:92,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: rawspeed::pana_cs6_page_decoder<12>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<12>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:116,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:117,1
    - Dst: BitStreamerLSB::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:118,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: rawspeed::pana_cs6_page_decoder<14>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - BitStreamerLSB::skipBitsNoFill
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<14>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fillBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: rawspeed::pana_cs6_page_decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - fillBuffer
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder(ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rawspeed::nextpixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t nextpixel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:91,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:92,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:93,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:94,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:95,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:96,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:97,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:98,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:99,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:100,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:102,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:103,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:104,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:106,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:107,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:108,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:109,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: rawspeed::pana_cs6_page_decoder<12>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<12>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:116,1
    - Dst: BitStreamerLSB::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:117,1
    - Dst: BitStreamerLSB::skipBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:118,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:119,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:120,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:121,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:122,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:123,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:124,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:125,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:126,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:127,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:128,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:129,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:130,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:131,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - bs_
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: rawspeed::pana_cs6_page_decoder<14>::fillBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - BitStreamerLSB::fill
    - BitStreamerLSB::getBits
    - BitStreamerLSB::skipBitsNoFill
    - ByteStream::peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void pana_cs6_page_decoder<14>::fillBuffer(ByteStream bs_) noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:140,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:141,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:141,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:154,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:157,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:158,1
    - Dst: dim::area
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:163,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:167,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:169,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:172,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - img
    - input_
    - bps_
    argTypes:
    - RawImage
    - ByteStream
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: rawspeed::PanasonicV6Decompressor::PanasonicV6Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::area
    - implicit_cast<Buffer::size_type>
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - ByteStream::getRemainSize
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: "void PanasonicV6Decompressor::PanasonicV6Decompressor(RawImage img,\n
      \                                                ByteStream input_,\n                                                 uint32_t
      bps_)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:180,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:183,1
    - Dst: pana_cs6_page_decoder::nextpixel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:191,1
    - Dst: pana_cs6_page_decoder::nextpixel
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:197,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:208,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:210,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:210,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:212,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:216,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - ' rowInput'
    - row
    - col
    argTypes:
    - ByteStream
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: rawspeed::PanasonicV6Decompressor::decompressBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 1
    functionsReached:
    - getStream
    - getU16DataAsUncroppedArray2DRef
    - pana_cs6_page_decoder::nextpixel
    - out
    - static_cast<int>
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void PanasonicV6Decompressor::decompressBlock(ByteStream& rowInput,
      int row,\n                                         int col) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:224,1
    - Dst: getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:228,1
    - Dst: rawspeed::PanasonicV6Decompressor::decompressBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: rawspeed::PanasonicV6Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressBlock
    - getSubStream
    - invariant
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompressRow(int row) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV6Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:242,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: rawspeed::PanasonicV6Decompressor::decompressInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressRow
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompressInternal() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::PanasonicV6Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:253,1
    - Dst: rawspeed::PanasonicV6Decompressor::decompressInternal
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:256,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: rawspeed::PanasonicV6Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::PanasonicV6Decompressor::decompressInternal
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void PanasonicV6Decompressor::decompress() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: RLVTABLE
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLVTABLE(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<int16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:87,1
    - Dst: std::numeric_limits<int16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:88,1
    - Dst: std::numeric_limits<int16_t>::min
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:89,1
    - Dst: std::numeric_limits<int16_t>::min
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:90,1
    - Dst: rawspeed::implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: decompand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<int16_t>
    - std::numeric_limits<int16_t>::min
    - std::numeric_limits<int16_t>::max
    linkageType: ''
    returnType: auto
    signature: auto decompand(int16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: readValue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool readValue(const bool& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: RLVTABLE
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLVTABLE(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<int16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:87,1
    - Dst: std::numeric_limits<int16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:88,1
    - Dst: std::numeric_limits<int16_t>::min
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:89,1
    - Dst: std::numeric_limits<int16_t>::min
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:90,1
    - Dst: rawspeed::implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: decompand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast<int16_t>
    - std::numeric_limits<int16_t>::min
    - std::numeric_limits<int16_t>::max
    linkageType: ''
    returnType: auto
    signature: auto decompand(int16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: readValue
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool readValue(const bool& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - band
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: VC5Decompressor::Wavelet::setBandValid(const int band)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::Wavelet::setBandValid(const int band)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - band
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: VC5Decompressor::Wavelet::isBandValid(const int band) const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VC5Decompressor::Wavelet::isBandValid(const int band) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: VC5Decompressor::Wavelet::allBandsValid() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool VC5Decompressor::Wavelet::allBandsValid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:141,1
    - Dst: lowGetter
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - row
    - col
    - muls
    - high
    - lowGetter
    argTypes:
    - int
    - int
    - std::array<int, 4>
    - Array2DRef<const int16_t>
    - LowGetter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: rawspeed::convolute
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - lowGetter
    - high
    linkageType: ''
    returnType: auto
    signature: "auto convolute(int row, int col, std::array<int, 4> muls,\n                      const
      Array2DRef<const int16_t> high, LowGetter lowGetter,\n                      int
      DescaleShift = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:141,1
    - Dst: lowGetter
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - row
    - col
    - muls
    - high
    - lowGetter
    argTypes:
    - int
    - int
    - std::array<int, 4>
    - Array2DRef<const int16_t>
    - LowGetter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: rawspeed::convolute
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - lowGetter
    - high
    linkageType: ''
    returnType: auto
    signature: "auto convolute(int row, int col, std::array<int, 4> muls,\n                      const
      Array2DRef<const int16_t> high, LowGetter lowGetter,\n                      int
      DescaleShift = 0)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<const int16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:186,1
    - Dst: Array2DRef<const int16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:186,1
    - Dst: low
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:191,1
    - Dst: convolute
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:194,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:197,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:198,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:200,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:200,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:201,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:201,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:214,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:218,1
    - Dst: auto::template operator()<ConvolutionParams::First>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:219,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:220,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:222,1
    - Dst: auto::template operator()<ConvolutionParams::Middle>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:223,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:226,1
    - Dst: auto::template operator()<ConvolutionParams::Last>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - high
    - low
    argTypes:
    - Array2DRef<const int16_t>
    - Array2DRef<const int16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 232
    functionName: "VC5Decompressor::Wavelet::reconstructPass(\n    const Array2DRef<const
      int16_t> high,\n    const Array2DRef<const int16_t> low) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - Array2DRef<const int16_t>::width
    - convolute
    - auto::template operator()<ConvolutionParams::Middle>
    - Array2DRef<const int16_t>::height
    - convolution
    - auto::template operator()<ConvolutionParams::First>
    - height
    - auto::template operator()<ConvolutionParams::Last>
    - width
    - low
    - dst
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: "VC5Decompressor::BandData VC5Decompressor::Wavelet::reconstructPass(\n
      \   const Array2DRef<const int16_t> high,\n    const Array2DRef<const int16_t>
      low) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<const int16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:238,1
    - Dst: Array2DRef<const int16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:238,1
    - Dst: low
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:244,1
    - Dst: convolute
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:248,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:251,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:252,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:255,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:256,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:258,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:258,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:259,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:259,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:273,1
    - Dst: auto::template operator()<ConvolutionParams::First>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:277,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:279,1
    - Dst: auto::template operator()<ConvolutionParams::Middle>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:280,1
    - Dst: auto::template operator()<ConvolutionParams::Last>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - low
    - high
    - descaleShift
    argTypes:
    - Array2DRef<const int16_t>
    - Array2DRef<const int16_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 287
    functionName: "VC5Decompressor::Wavelet::combineLowHighPass(\n    const Array2DRef<const
      int16_t> low, const Array2DRef<const int16_t> high,\n    int descaleShift, bool
      clampUint = false,\n    [[maybe_unused]] bool finalWavelet = false) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - Array2DRef<const int16_t>::width
    - static_cast<int16_t>
    - convolute
    - auto::template operator()<ConvolutionParams::Middle>
    - Array2DRef<const int16_t>::height
    - convolution
    - auto::template operator()<ConvolutionParams::First>
    - height
    - auto::template operator()<ConvolutionParams::Last>
    - width
    - low
    - dst
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: "VC5Decompressor::BandData VC5Decompressor::Wavelet::combineLowHighPass(\n
      \   const Array2DRef<const int16_t> low, const Array2DRef<const int16_t> high,\n
      \   int descaleShift, bool clampUint = false,\n    [[maybe_unused]] bool finalWavelet
      = false) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:302,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:306,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:306,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:307,1
    - Dst: Wavelet::reconstructPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(highlow.has_value() && lowlow.has_value() &&\n             \"Failed
        to produce precursor bands?\")"
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!lowpass.has_value() && "Combined this precursor band already?")
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - emplace
    - Wavelet::reconstructPass
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:326,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:329,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:329,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:330,1
    - Dst: Wavelet::reconstructPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(highhigh.has_value() && lowhigh.has_value() &&\n             \"Failed
        to produce precursor bands?\")"
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!highpass.has_value() && "Combined this precursor band already?")
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - emplace
    - Wavelet::reconstructPass
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:347,1
    - Dst: bands::clear
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:348,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:359,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:362,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:362,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:367,1
    - Dst: Wavelet::combineLowHighPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(lowpass.has_value() && highpass.has_value() &&\n             \"Failed
        to combine precursor bands?\")"
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!data.has_value() && "Reconstructed this band already?")
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 372
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 372
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - bands::clear
    - Wavelet::combineLowHighPass
    - assert
    - emplace
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:376,1
    - Dst: allBandsValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:376,1
    - Dst: createLowpassReconstructionTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:377,1
    - Dst: createHighpassReconstructionTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:378,1
    - Dst: createLowHighPassCombiningTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' errLog'
    - ' exceptionThrow'
    argTypes:
    - ErrorLog
    - bool
    assertStmts:
    - condition: (wavelet.allBandsValid())
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrow) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - createLowHighPassCombiningTask
    - createLowpassReconstructionTask
    - assert
    - allBandsValid
    - createHighpassReconstructionTask
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrow) noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:384,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:384,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:385,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:386,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:388,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:389,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:392,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:396,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:399,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:401,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:404,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:408,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:409,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:414,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:414,1
    - Dst: bands::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:418,1
    - Dst: wavelets::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:419,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:424,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:429,1
    - Dst: rawspeed::VC5Decompressor::parseVC5
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 432
    functionName: rawspeed::VC5Decompressor::VC5Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getAsBayerPhase
    - dim::hasPositiveArea
    - wavelets::begin
    - ThrowRDE
    - getDataType
    - getCpp
    - roundUpDivisionSafe
    - invariant
    - rawspeed::VC5Decompressor::parseVC5
    - bands::resize
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::VC5Decompressor(ByteStream bs, const RawImage&
      img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:444,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:446,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:448,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:450,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:451,1
    - Dst: rawspeed::RAWSPEED_READNONE::isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:451,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:453,1
    - Dst: rawspeed::RAWSPEED_READNONE::isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:453,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:456,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:460,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:460,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (rawspeed::isIntN(value, DecompandedCodeValueBitWidth))
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (rawspeed::isIntN(e.count, RLVRunLengthBitWidth))
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 462
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 462
    functionName: rawspeed::VC5Decompressor::initPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - std::move
    - setup
    - std::vector::reserve
    - decompand
    - rawspeed::RAWSPEED_READNONE::isIntN
    - assert
    - emplace
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::initPrefixCodeDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:469,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:473,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:475,1
    - Dst: denormalizeY
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: normalizedCurve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: normalizeI
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:484,1
    - Dst: rescaleY
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 488
    functionName: rawspeed::VC5Decompressor::initVC5LogTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - normalizedCurve
    - static_cast<unsigned int>
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    - denormalizeY
    - normalizeI
    - rescaleY
    - std::pow
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::initVC5LogTable()
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:491,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:493,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:494,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:497,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:498,1
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:502,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:502,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:503,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:505,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:513,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:517,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:521,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:525,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:530,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:535,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:539,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:543,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:549,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:553,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:557,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:561,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:565,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:574,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:580,1
    - Dst: static_cast<std::underlying_type_t<VC5Tag>>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:581,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:583,1
    - Dst: is
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:587,1
    - Dst: rawspeed::VC5Decompressor::parseLargeCodeblock
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:588,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:588,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:596,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:602,1
    - Dst: static_cast<std::underlying_type_t<VC5Tag>>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:603,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:607,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:615,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 618
    functionName: rawspeed::VC5Decompressor::parseVC5
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - skipBytes
    - begin
    - is
    - extractHighBits
    - std::all_of
    - getU16
    - setByteOrder
    - rawspeed::VC5Decompressor::parseLargeCodeblock
    - static_cast<unsigned int>
    - end
    - ThrowRDE
    - static_cast<VC5Tag>
    - matches
    - getStream
    - isBandValid
    - static_cast<int16_t>
    - static_cast<std::underlying_type_t<VC5Tag>>
    - invariant
    - getU32
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::parseVC5()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:630,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:632,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:632,1
    - Dst: decode
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:633,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:636,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:636,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' errLog'
    - ' exceptionThrown'
    argTypes:
    - ErrorLog
    - bool
    assertStmts:
    - condition: (!decodedData.has_value() && "Decoded this band already?")
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 647
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 647
    functionName: "VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decode
    - setError
    - __builtin_unreachable
    - assert
    - what
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrown) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:652,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:657,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:661,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:665,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' wavelet_'
    - bs
    - lowpassPrecision_
    argTypes:
    - Wavelet
    - ByteStream
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 667
    functionName: "VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n
      \                                                  ByteStream bs,\n                                                   uint16_t
      lowpassPrecision_)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getAsArray1DRef
    - ByteStream::getStream
    - roundUpDivisionSafe
    - iPoint2D
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n
      \                                                  ByteStream bs,\n                                                   uint16_t
      lowpassPrecision_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:675,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:676,1
    - Dst: band
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: VC5Decompressor::Wavelet::LowPassBand::decode() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - height
    - width
    - band
    - BitStreamerMSB::getBits
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: VC5Decompressor::BandData VC5Decompressor::Wavelet::LowPassBand::decode()
      const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:694,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: getRLV
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:705,1
    - Dst: decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:706,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:707,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:710,1
    - Dst: __builtin_mul_overflow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:715,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:716,1
    - Dst: decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:721,1
    - Dst: dequantize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:722,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:726,1
    - Dst: band
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:739,1
    - Dst: DeRLVer::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:739,1
    - Dst: DeRLVer::verifyIsAtEnd
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 742
    functionName: VC5Decompressor::Wavelet::HighPassBand::decode() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decodeNextPixelGroup
    - DeRLVer::decode
    - decompand
    - ThrowRDE
    - std::tie
    - invariant
    - __builtin_mul_overflow
    - dequantize
    - band
    - DeRLVer::verifyIsAtEnd
    - getRLV
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: VC5Decompressor::BandData VC5Decompressor::Wavelet::HighPassBand::decode()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:694,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: getRLV
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: rawspeed::DeRLVer::decodeNextPixelGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - invariant
    - getRLV
    linkageType: ''
    returnType: void
    signature: void decodeNextPixelGroup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' decoder_'
    - input
    - quant_
    argTypes:
    - PrefixCodeDecoder
    - Array1DRef<const uint8_t>
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 701
    functionName: rawspeed::DeRLVer::DeRLVer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeRLVer(const PrefixCodeDecoder& decoder_, Array1DRef<const uint8_t>
      input,\n            int16_t quant_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:705,1
    - Dst: rawspeed::DeRLVer::decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:706,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:707,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 711
    functionName: rawspeed::DeRLVer::verifyIsAtEnd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - decompand
    - rawspeed::DeRLVer::decodeNextPixelGroup
    linkageType: ''
    returnType: void
    signature: void verifyIsAtEnd()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:715,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:716,1
    - Dst: rawspeed::DeRLVer::decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:721,1
    - Dst: dequantize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:722,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 730
    functionName: rawspeed::DeRLVer::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::DeRLVer::decodeNextPixelGroup
    - __builtin_mul_overflow
    - dequantize
    linkageType: ''
    returnType: int16_t
    signature: int16_t decode()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:748,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:756,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:761,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:762,1
    - Dst: iSubband::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:772,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:773,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:781,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:782,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:788,1
    - Dst: lowpassPrecision::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:790,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:791,1
    - Dst: std::make_unique<Wavelet::LowPassBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:792,1
    - Dst: lowpassPrecision::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:794,1
    - Dst: quantization::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:796,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:797,1
    - Dst: std::make_unique<Wavelet::HighPassBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:798,1
    - Dst: ByteStream::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:799,1
    - Dst: quantization::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:800,1
    - Dst: setBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:802,1
    - Dst: allBandsValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:806,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:808,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:808,1
    - Dst: std::make_unique<Wavelet::ReconstructableBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:810,1
    - Dst: setBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:812,1
    - Dst: iSubband::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:815,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (band == 0)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!nextWavelet.isBandValid(0))
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 816
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 816
    functionName: rawspeed::VC5Decompressor::parseLargeCodeblock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - isBandValid
    - std::array::size
    - ByteStream::getAsArray1DRef
    - quantization::reset
    - std::make_unique<Wavelet::HighPassBand>
    - std::make_unique<Wavelet::ReconstructableBand>
    - std::make_unique<Wavelet::LowPassBand>
    - ThrowRDE
    - quantization::has_value
    - assert
    - allBandsValid
    - iSubband::reset
    - iSubband::has_value
    - setBandValid
    - lowpassPrecision::has_value
    - std::array::front
    - lowpassPrecision::reset
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::parseLargeCodeblock(ByteStream bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createDecodingTasks
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:825,1
    - Dst: static_cast<ErrorLog&>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:826,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 833
    functionName: rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - readValue
    - static_cast<ErrorLog&>
    - createDecodingTasks
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::createWaveletBandDecodingTasks(\n    bool& exceptionThrown)
      const noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:840,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:843,1
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBands
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 847
    functionName: rawspeed::VC5Decompressor::decodeThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
    - rawspeed::VC5Decompressor::combineFinalLowpassBands
    - readValue
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::decodeThread(bool& exceptionThrown) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:851,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:852,1
    - Dst: rawspeed::VC5Decompressor::initPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:854,1
    - Dst: rawspeed::VC5Decompressor::initVC5LogTable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:855,1
    - Dst: rawspeed::VC5Decompressor::decodeThread
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:863,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:866,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:867,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:868,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:869,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - offsetX
    - offsetY
    - width
    - height
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (exceptionThrown)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!exceptionThrown)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 873
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 873
    functionName: rawspeed::VC5Decompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::VC5Decompressor::decodeThread
    - rawspeed::VC5Decompressor::initVC5LogTable
    - ThrowRDE
    - assert
    - rawspeed::VC5Decompressor::initPrefixCodeDecoder
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::decode(unsigned int offsetX, unsigned int offsetY,\n
      \                            unsigned int width, unsigned int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:877,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:879,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:880,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:882,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:882,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:883,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:884,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:885,1
    - Dst: lowbands0
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:904,1
    - Dst: lowbands1
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:905,1
    - Dst: lowbands2
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:906,1
    - Dst: lowbands3
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:907,1
    - Dst: applyStablePhaseShift
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:920,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:922,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:923,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:924,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:925,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:926,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:926,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(channels[0].wavelets[0].bands[0]->data.has_value() &&\n         channels[1].wavelets[0].bands[0]->data.has_value()
        &&\n         channels[2].wavelets[0].bands[0]->data.has_value() &&\n         channels[3].wavelets[0].bands[0]->data.has_value()
        &&\n         \"Failed to reconstruct all final lowpass bands?\")"
      pos:
        line_end: 885
        line_start: 881
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 931
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 931
    functionName: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - data::has_value
    - lowbands1
    - lowbands0
    - pat
    - static_cast<uint16_t>
    - applyStablePhaseShift
    - std::array::data
    - assert
    - getU16DataAsUncroppedArray2DRef
    - out
    - lowbands2
    - lowbands3
    - Array2DRef::width
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::combineFinalLowpassBandsImpl() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:937,1
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:940,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 946
    functionName: rawspeed::VC5Decompressor::combineFinalLowpassBands
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::combineFinalLowpassBands() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:951,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:954,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' decoder'
    - ' bits'
    argTypes:
    - PrefixCodeDecoder
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: rawspeed::VC5Decompressor::getRLV
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decodeCodeValue
    - implicit_cast<int16_t>
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<int16_t /*value*/, unsigned int /*count*/>
    signature: "std::pair<int16_t /*value*/, unsigned int /*count*/> VC5Decompressor::getRLV(const
      PrefixCodeDecoder& decoder,\n                        BitStreamerMSB& bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: VC5Decompressor::Wavelet::AbstractBand::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::Wavelet::AbstractBand::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - band
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: VC5Decompressor::Wavelet::setBandValid(const int band)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::Wavelet::setBandValid(const int band)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - band
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: VC5Decompressor::Wavelet::isBandValid(const int band) const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VC5Decompressor::Wavelet::isBandValid(const int band) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: VC5Decompressor::Wavelet::allBandsValid() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool VC5Decompressor::Wavelet::allBandsValid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:141,1
    - Dst: lowGetter
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - row
    - col
    - muls
    - high
    - lowGetter
    argTypes:
    - int
    - int
    - std::array<int, 4>
    - Array2DRef<const int16_t>
    - LowGetter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: rawspeed::convolute
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - lowGetter
    - high
    linkageType: ''
    returnType: auto
    signature: "auto convolute(int row, int col, std::array<int, 4> muls,\n                      const
      Array2DRef<const int16_t> high, LowGetter lowGetter,\n                      int
      DescaleShift = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:141,1
    - Dst: lowGetter
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - row
    - col
    - muls
    - high
    - lowGetter
    argTypes:
    - int
    - int
    - std::array<int, 4>
    - Array2DRef<const int16_t>
    - LowGetter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: rawspeed::convolute
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - lowGetter
    - high
    linkageType: ''
    returnType: auto
    signature: "auto convolute(int row, int col, std::array<int, 4> muls,\n                      const
      Array2DRef<const int16_t> high, LowGetter lowGetter,\n                      int
      DescaleShift = 0)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<const int16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:186,1
    - Dst: Array2DRef<const int16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:186,1
    - Dst: low
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:191,1
    - Dst: convolute
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:194,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:197,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:198,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:200,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:200,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:201,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:201,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:214,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:218,1
    - Dst: auto::template operator()<ConvolutionParams::First>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:219,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:220,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:222,1
    - Dst: auto::template operator()<ConvolutionParams::Middle>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:223,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:226,1
    - Dst: auto::template operator()<ConvolutionParams::Last>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - high
    - low
    argTypes:
    - Array2DRef<const int16_t>
    - Array2DRef<const int16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 232
    functionName: "VC5Decompressor::Wavelet::reconstructPass(\n    const Array2DRef<const
      int16_t> high,\n    const Array2DRef<const int16_t> low) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - Array2DRef<const int16_t>::width
    - convolute
    - auto::template operator()<ConvolutionParams::Middle>
    - Array2DRef<const int16_t>::height
    - convolution
    - auto::template operator()<ConvolutionParams::First>
    - height
    - auto::template operator()<ConvolutionParams::Last>
    - width
    - low
    - dst
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: "VC5Decompressor::BandData VC5Decompressor::Wavelet::reconstructPass(\n
      \   const Array2DRef<const int16_t> high,\n    const Array2DRef<const int16_t>
      low) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Array2DRef<const int16_t>::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:238,1
    - Dst: Array2DRef<const int16_t>::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:238,1
    - Dst: low
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:244,1
    - Dst: convolute
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:248,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:251,1
    - Dst: convolution
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:252,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:255,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:256,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:258,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:258,1
    - Dst: dst
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:259,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:259,1
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:273,1
    - Dst: auto::template operator()<ConvolutionParams::First>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:277,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:279,1
    - Dst: auto::template operator()<ConvolutionParams::Middle>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:280,1
    - Dst: auto::template operator()<ConvolutionParams::Last>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - low
    - high
    - descaleShift
    argTypes:
    - Array2DRef<const int16_t>
    - Array2DRef<const int16_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 287
    functionName: "VC5Decompressor::Wavelet::combineLowHighPass(\n    const Array2DRef<const
      int16_t> low, const Array2DRef<const int16_t> high,\n    int descaleShift, bool
      clampUint = false,\n    [[maybe_unused]] bool finalWavelet = false) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - clampBits
    - Array2DRef<const int16_t>::width
    - static_cast<int16_t>
    - convolute
    - auto::template operator()<ConvolutionParams::Middle>
    - Array2DRef<const int16_t>::height
    - convolution
    - auto::template operator()<ConvolutionParams::First>
    - height
    - auto::template operator()<ConvolutionParams::Last>
    - width
    - low
    - dst
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: "VC5Decompressor::BandData VC5Decompressor::Wavelet::combineLowHighPass(\n
      \   const Array2DRef<const int16_t> low, const Array2DRef<const int16_t> high,\n
      \   int descaleShift, bool clampUint = false,\n    [[maybe_unused]] bool finalWavelet
      = false) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:302,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:303,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:306,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:306,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:307,1
    - Dst: Wavelet::reconstructPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(highlow.has_value() && lowlow.has_value() &&\n             \"Failed
        to produce precursor bands?\")"
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!lowpass.has_value() && "Combined this precursor band already?")
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - emplace
    - Wavelet::reconstructPass
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:326,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:327,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:329,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:329,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:330,1
    - Dst: Wavelet::reconstructPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(highhigh.has_value() && lowhigh.has_value() &&\n             \"Failed
        to produce precursor bands?\")"
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!highpass.has_value() && "Combined this precursor band already?")
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - assert
    - emplace
    - Wavelet::reconstructPass
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:347,1
    - Dst: bands::clear
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:348,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:359,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:360,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:362,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:362,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:367,1
    - Dst: Wavelet::combineLowHighPass
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts:
    - condition: "(lowpass.has_value() && highpass.has_value() &&\n             \"Failed
        to combine precursor bands?\")"
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!data.has_value() && "Reconstructed this band already?")
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 372
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 372
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
      bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - bands::clear
    - Wavelet::combineLowHighPass
    - assert
    - emplace
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
      bool& exceptionThrown) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:376,1
    - Dst: allBandsValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:376,1
    - Dst: createLowpassReconstructionTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:377,1
    - Dst: createHighpassReconstructionTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:378,1
    - Dst: createLowHighPassCombiningTask
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' errLog'
    - ' exceptionThrow'
    argTypes:
    - ErrorLog
    - bool
    assertStmts:
    - condition: (wavelet.allBandsValid())
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: "VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrow) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - createLowHighPassCombiningTask
    - createLowpassReconstructionTask
    - assert
    - allBandsValid
    - createHighpassReconstructionTask
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrow) noexcept"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:384,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:384,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:385,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:386,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:388,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:389,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:392,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:396,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:399,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:401,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:404,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:408,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:409,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:414,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:414,1
    - Dst: bands::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:418,1
    - Dst: wavelets::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:419,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:424,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:429,1
    - Dst: rawspeed::VC5Decompressor::parseVC5
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 432
    functionName: rawspeed::VC5Decompressor::VC5Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - getAsBayerPhase
    - dim::hasPositiveArea
    - wavelets::begin
    - ThrowRDE
    - getDataType
    - getCpp
    - roundUpDivisionSafe
    - invariant
    - rawspeed::VC5Decompressor::parseVC5
    - bands::resize
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::VC5Decompressor(ByteStream bs, const RawImage&
      img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:444,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:446,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:448,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:450,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:451,1
    - Dst: rawspeed::RAWSPEED_READNONE::isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:451,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:453,1
    - Dst: rawspeed::RAWSPEED_READNONE::isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:453,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:456,1
    - Dst: emplace
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:460,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:460,1
    - Dst: setup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (rawspeed::isIntN(value, DecompandedCodeValueBitWidth))
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (rawspeed::isIntN(e.count, RLVRunLengthBitWidth))
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 462
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 462
    functionName: rawspeed::VC5Decompressor::initPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - std::vector::emplace_back
    - std::move
    - setup
    - std::vector::reserve
    - decompand
    - rawspeed::RAWSPEED_READNONE::isIntN
    - assert
    - emplace
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::initPrefixCodeDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:469,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:473,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:475,1
    - Dst: denormalizeY
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: normalizedCurve
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: normalizeI
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:483,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:484,1
    - Dst: rescaleY
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 488
    functionName: rawspeed::VC5Decompressor::initVC5LogTable
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - normalizedCurve
    - static_cast<unsigned int>
    - implicit_cast<double>
    - std::numeric_limits<uint16_t>::max
    - denormalizeY
    - normalizeI
    - rescaleY
    - std::pow
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::initVC5LogTable()
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:491,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:493,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:494,1
    - Dst: getU32
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:497,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:498,1
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:502,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:502,1
    - Dst: getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:503,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:505,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:513,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:517,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:521,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:525,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:530,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:535,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:539,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:543,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:549,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:553,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:557,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:561,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:565,1
    - Dst: extractHighBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:574,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:580,1
    - Dst: static_cast<std::underlying_type_t<VC5Tag>>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:581,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:583,1
    - Dst: is
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:587,1
    - Dst: rawspeed::VC5Decompressor::parseLargeCodeblock
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:588,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:588,1
    - Dst: matches
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:596,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:602,1
    - Dst: static_cast<std::underlying_type_t<VC5Tag>>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:603,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:607,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:613,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:615,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 618
    functionName: rawspeed::VC5Decompressor::parseVC5
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - skipBytes
    - begin
    - is
    - extractHighBits
    - std::all_of
    - getU16
    - setByteOrder
    - rawspeed::VC5Decompressor::parseLargeCodeblock
    - static_cast<unsigned int>
    - end
    - ThrowRDE
    - static_cast<VC5Tag>
    - matches
    - getStream
    - isBandValid
    - static_cast<int16_t>
    - static_cast<std::underlying_type_t<VC5Tag>>
    - invariant
    - getU32
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::parseVC5()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:630,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:632,1
    - Dst: has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:632,1
    - Dst: decode
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:633,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:636,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:636,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' errLog'
    - ' exceptionThrown'
    argTypes:
    - ErrorLog
    - bool
    assertStmts:
    - condition: (!decodedData.has_value() && "Decoded this band already?")
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 647
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 647
    functionName: "VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrown) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decode
    - setError
    - __builtin_unreachable
    - assert
    - what
    - readValue
    - has_value
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n
      \   ErrorLog& errLog, bool& exceptionThrown) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:652,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:657,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:661,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:665,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' wavelet_'
    - bs
    - lowpassPrecision_
    argTypes:
    - Wavelet
    - ByteStream
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 667
    functionName: "VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n
      \                                                  ByteStream bs,\n                                                   uint16_t
      lowpassPrecision_)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getAsArray1DRef
    - ByteStream::getStream
    - roundUpDivisionSafe
    - iPoint2D
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n
      \                                                  ByteStream bs,\n                                                   uint16_t
      lowpassPrecision_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:675,1
    - Dst: width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:676,1
    - Dst: band
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: VC5Decompressor::Wavelet::LowPassBand::decode() const noexcept
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - height
    - width
    - band
    - BitStreamerMSB::getBits
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: VC5Decompressor::BandData VC5Decompressor::Wavelet::LowPassBand::decode()
      const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:694,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: getRLV
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:705,1
    - Dst: decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:706,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:707,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:710,1
    - Dst: __builtin_mul_overflow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:715,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:716,1
    - Dst: decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:721,1
    - Dst: dequantize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:722,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:726,1
    - Dst: band
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:739,1
    - Dst: DeRLVer::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:739,1
    - Dst: DeRLVer::verifyIsAtEnd
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 742
    functionName: VC5Decompressor::Wavelet::HighPassBand::decode() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decodeNextPixelGroup
    - DeRLVer::decode
    - decompand
    - ThrowRDE
    - std::tie
    - invariant
    - __builtin_mul_overflow
    - dequantize
    - band
    - DeRLVer::verifyIsAtEnd
    - getRLV
    linkageType: ''
    returnType: VC5Decompressor::BandData
    signature: VC5Decompressor::BandData VC5Decompressor::Wavelet::HighPassBand::decode()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:694,1
    - Dst: std::tie
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    - Dst: getRLV
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: rawspeed::DeRLVer::decodeNextPixelGroup
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - std::tie
    - invariant
    - getRLV
    linkageType: ''
    returnType: void
    signature: void decodeNextPixelGroup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' decoder_'
    - input
    - quant_
    argTypes:
    - PrefixCodeDecoder
    - Array1DRef<const uint8_t>
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 701
    functionName: rawspeed::DeRLVer::DeRLVer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DeRLVer(const PrefixCodeDecoder& decoder_, Array1DRef<const uint8_t>
      input,\n            int16_t quant_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:705,1
    - Dst: rawspeed::DeRLVer::decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:706,1
    - Dst: decompand
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:707,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 711
    functionName: rawspeed::DeRLVer::verifyIsAtEnd
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - decompand
    - rawspeed::DeRLVer::decodeNextPixelGroup
    linkageType: ''
    returnType: void
    signature: void verifyIsAtEnd()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:715,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:716,1
    - Dst: rawspeed::DeRLVer::decodeNextPixelGroup
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:721,1
    - Dst: dequantize
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:722,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 730
    functionName: rawspeed::DeRLVer::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::DeRLVer::decodeNextPixelGroup
    - __builtin_mul_overflow
    - dequantize
    linkageType: ''
    returnType: int16_t
    signature: int16_t decode()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:748,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:756,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:761,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:762,1
    - Dst: iSubband::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:772,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:773,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:781,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:782,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:788,1
    - Dst: lowpassPrecision::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:790,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:791,1
    - Dst: std::make_unique<Wavelet::LowPassBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:792,1
    - Dst: lowpassPrecision::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:794,1
    - Dst: quantization::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:796,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:797,1
    - Dst: std::make_unique<Wavelet::HighPassBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:798,1
    - Dst: ByteStream::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:799,1
    - Dst: quantization::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:800,1
    - Dst: setBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:802,1
    - Dst: allBandsValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:806,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:808,1
    - Dst: isBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:808,1
    - Dst: std::make_unique<Wavelet::ReconstructableBand>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:810,1
    - Dst: setBandValid
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:812,1
    - Dst: iSubband::reset
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:815,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (band == 0)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!nextWavelet.isBandValid(0))
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 816
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 816
    functionName: rawspeed::VC5Decompressor::parseLargeCodeblock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - isBandValid
    - std::array::size
    - ByteStream::getAsArray1DRef
    - quantization::reset
    - std::make_unique<Wavelet::HighPassBand>
    - std::make_unique<Wavelet::ReconstructableBand>
    - std::make_unique<Wavelet::LowPassBand>
    - ThrowRDE
    - quantization::has_value
    - assert
    - allBandsValid
    - iSubband::reset
    - iSubband::has_value
    - setBandValid
    - lowpassPrecision::has_value
    - std::array::front
    - lowpassPrecision::reset
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::parseLargeCodeblock(ByteStream bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createDecodingTasks
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:825,1
    - Dst: static_cast<ErrorLog&>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:826,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 833
    functionName: rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - readValue
    - static_cast<ErrorLog&>
    - createDecodingTasks
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::createWaveletBandDecodingTasks(\n    bool& exceptionThrown)
      const noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:840,1
    - Dst: readValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:843,1
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBands
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' exceptionThrown'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 847
    functionName: rawspeed::VC5Decompressor::decodeThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
    - rawspeed::VC5Decompressor::combineFinalLowpassBands
    - readValue
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::decodeThread(bool& exceptionThrown) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:851,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:852,1
    - Dst: rawspeed::VC5Decompressor::initPrefixCodeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:854,1
    - Dst: rawspeed::VC5Decompressor::initVC5LogTable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:855,1
    - Dst: rawspeed::VC5Decompressor::decodeThread
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:863,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:866,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:867,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:868,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:869,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - offsetX
    - offsetY
    - width
    - height
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (exceptionThrown)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - condition: (!exceptionThrown)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 873
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 873
    functionName: rawspeed::VC5Decompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - isTooManyErrors
    - std::string::c_str
    - rawspeed::VC5Decompressor::decodeThread
    - rawspeed::VC5Decompressor::initVC5LogTable
    - ThrowRDE
    - assert
    - rawspeed::VC5Decompressor::initPrefixCodeDecoder
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: "void VC5Decompressor::decode(unsigned int offsetX, unsigned int offsetY,\n
      \                            unsigned int width, unsigned int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:877,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:879,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:880,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:882,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:882,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:883,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:884,1
    - Dst: data::has_value
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:885,1
    - Dst: lowbands0
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:904,1
    - Dst: lowbands1
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:905,1
    - Dst: lowbands2
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:906,1
    - Dst: lowbands3
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:907,1
    - Dst: applyStablePhaseShift
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:920,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:922,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:923,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:924,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:925,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:926,1
    - Dst: pat
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:926,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(channels[0].wavelets[0].bands[0]->data.has_value() &&\n         channels[1].wavelets[0].bands[0]->data.has_value()
        &&\n         channels[2].wavelets[0].bands[0]->data.has_value() &&\n         channels[3].wavelets[0].bands[0]->data.has_value()
        &&\n         \"Failed to reconstruct all final lowpass bands?\")"
      pos:
        line_end: 885
        line_start: 881
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 931
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 931
    functionName: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef::height
    - data::has_value
    - lowbands1
    - lowbands0
    - pat
    - static_cast<uint16_t>
    - applyStablePhaseShift
    - std::array::data
    - assert
    - getU16DataAsUncroppedArray2DRef
    - out
    - lowbands2
    - lowbands3
    - Array2DRef::width
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::combineFinalLowpassBandsImpl() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:937,1
    - Dst: rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:940,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 946
    functionName: rawspeed::VC5Decompressor::combineFinalLowpassBands
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::combineFinalLowpassBands() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:951,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:954,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' decoder'
    - ' bits'
    argTypes:
    - PrefixCodeDecoder
    - BitStreamerMSB
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: rawspeed::VC5Decompressor::getRLV
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached:
    - decodeCodeValue
    - implicit_cast<int16_t>
    - getBitsNoFill
    linkageType: ''
    returnType: std::pair<int16_t /*value*/, unsigned int /*count*/>
    signature: "std::pair<int16_t /*value*/, unsigned int /*count*/> VC5Decompressor::getRLV(const
      PrefixCodeDecoder& decoder,\n                        BitStreamerMSB& bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: VC5Decompressor::Wavelet::AbstractBand::anchor() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VC5Decompressor::Wavelet::AbstractBand::anchor() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:41,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:42,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:45,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:46,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:51,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - mRaw_
    - ' rec_'
    - input_
    argTypes:
    - RawImage
    - PerComponentRecipe
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: rawspeed::HasselbladDecompressor::HasselbladDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ht::isFullDecode
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void HasselbladDecompressor::HasselbladDecompressor(RawImage mRaw_,\n
      \                                              const PerComponentRecipe& rec_,\n
      \                                              Array1DRef<const uint8_t> input_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:64,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' bs'
    - len
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: rawspeed::HasselbladDecompressor::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::HasselbladDecompressor::getBits
    - rawspeed::AbstractPrefixCodeDecoder::extend
    linkageType: ''
    returnType: int
    signature: int HasselbladDecompressor::getBits(BitStreamerMSB32& bs, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:72,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:74,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:75,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:76,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:76,1
    - Dst: auto::verifyCodeValuesAsDiffLengths
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:79,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:85,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:88,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:89,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:90,1
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:91,1
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:92,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:95,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:96,1
    - Dst: BitStreamerMSB32::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 100
    functionName: rawspeed::HasselbladDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::HasselbladDecompressor::getBits
    - auto::verifyCodeValuesAsDiffLengths
    - BitStreamerMSB32::getStreamPosition
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - auto::decodeCodeValue
    - Array2DRef::width
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type HasselbladDecompressor::decompress()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:41,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:42,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:45,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:46,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:51,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - mRaw_
    - ' rec_'
    - input_
    argTypes:
    - RawImage
    - PerComponentRecipe
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: rawspeed::HasselbladDecompressor::HasselbladDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ht::isFullDecode
    - ThrowRDE
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: "void HasselbladDecompressor::HasselbladDecompressor(RawImage mRaw_,\n
      \                                              const PerComponentRecipe& rec_,\n
      \                                              Array1DRef<const uint8_t> input_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:64,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' bs'
    - len
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: rawspeed::HasselbladDecompressor::getBits
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::HasselbladDecompressor::getBits
    - rawspeed::AbstractPrefixCodeDecoder::extend
    linkageType: ''
    returnType: int
    signature: int HasselbladDecompressor::getBits(BitStreamerMSB32& bs, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:72,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:74,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:74,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:75,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:75,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:76,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:76,1
    - Dst: auto::verifyCodeValuesAsDiffLengths
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:79,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:85,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:88,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:89,1
    - Dst: auto::decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:90,1
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:91,1
    - Dst: rawspeed::HasselbladDecompressor::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:92,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:95,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:96,1
    - Dst: BitStreamerMSB32::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 100
    functionName: rawspeed::HasselbladDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - rawspeed::HasselbladDecompressor::getBits
    - auto::verifyCodeValuesAsDiffLengths
    - BitStreamerMSB32::getStreamPosition
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - auto::decodeCodeValue
    - Array2DRef::width
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type HasselbladDecompressor::decompress()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' rect'
    - ' nextRect'
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 4
    functionsReached:
    - getTopRight
    - getBottomRight
    - getBottomLeft
    - getRight
    - getLeft
    - getTop
    - getTopLeft
    linkageType: ''
    returnType: TileSequenceStatus
    signature: "TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D& rect,\n
      \                        const iRectangle2D& nextRect)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' rect'
    - ' nextRect'
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 4
    functionsReached:
    - getTopRight
    - getBottomRight
    - getBottomLeft
    - getRight
    - getLeft
    - getTop
    - getTopLeft
    linkageType: ''
    returnType: TileSequenceStatus
    signature: "TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D& rect,\n
      \                        const iRectangle2D& nextRect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sliceWidthIter_'
    - ' frame'
    argTypes:
    - Cr2SliceWidthIterator
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::Cr2SliceIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2SliceIterator(const Cr2SliceWidthIterator& sliceWidthIter_,\n
      \                  const iPoint2D& frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceIterator
    signature: Cr2SliceIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2SliceIterator
    - Cr2SliceIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: operator==(const Cr2SliceIterator& a, const Cr2SliceIterator& b)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Cr2SliceIterator& a, const Cr2SliceIterator&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sliceIter_'
    - ' imgDim_'
    argTypes:
    - Cr2SliceIterator
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: rawspeed::Cr2OutputTileIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2OutputTileIterator(const Cr2SliceIterator& sliceIter_,\n                        const
      iPoint2D& imgDim_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:125,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:126,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:127,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:128,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - iRectangle2D::getTop
    - std::min
    - iRectangle2D::getHeight
    - rawspeed::invariant
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:135,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:136,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:137,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - iRectangle2D::getBottomLeft
    - iRectangle2D::getHeight
    - iRectangle2D::getWidth
    - rawspeed::invariant
    linkageType: ''
    returnType: Cr2OutputTileIterator
    signature: Cr2OutputTileIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2OutputTileIterator
    - Cr2OutputTileIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: "RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n
      \                                          const Cr2OutputTileIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n
      \                                          const Cr2OutputTileIterator& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:162,1
    - Dst: evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:169,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:170,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: rawspeed::Cr2VerticalOutputStripIterator::coalesce
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - invariant
    - evaluateConsecutiveTiles
    linkageType: ''
    returnType: std::pair<iRectangle2D, int>
    signature: std::pair<iRectangle2D, int> coalesce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' outputTileIterator_'
    - ' outputTileIterator_end_'
    argTypes:
    - Cr2OutputTileIterator
    - Cr2OutputTileIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: rawspeed::Cr2VerticalOutputStripIterator::Cr2VerticalOutputStripIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2VerticalOutputStripIterator(\n      const Cr2OutputTileIterator&
      outputTileIterator_,\n      const Cr2OutputTileIterator& outputTileIterator_end_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: coalesce
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - coalesce
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:196,1
    - Dst: coalesce
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - coalesce
    - std::advance
    linkageType: ''
    returnType: Cr2VerticalOutputStripIterator
    signature: Cr2VerticalOutputStripIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2VerticalOutputStripIterator
    - Cr2VerticalOutputStripIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: "operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
      Cr2VerticalOutputStripIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::invariant
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
      Cr2VerticalOutputStripIterator& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cr2SliceIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:210,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:210,1
    - Dst: Cr2SliceIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:211,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    - Cr2SliceIterator
    linkageType: ''
    returnType: iterator_range<Cr2SliceIterator>
    signature: iterator_range<Cr2SliceIterator> Cr2Decompressor<PrefixCodeDecoder>::getSlices()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:217,1
    - Dst: Cr2OutputTileIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:218,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:218,1
    - Dst: Cr2OutputTileIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:219,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::begin
    - Cr2OutputTileIterator
    - std::end
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
    linkageType: ''
    returnType: iterator_range<Cr2OutputTileIterator>
    signature: iterator_range<Cr2OutputTileIterator> Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:225,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:226,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:227,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:228,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:230,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:230,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:232,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((*last).getBottomRight() == dim && "Bad tiling")
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    - auto::end
    - auto::begin
    - getBottomRight
    - assert
    - invariant
    - std::next
    linkageType: ''
    returnType: iterator_range<Cr2OutputTileIterator>
    signature: iterator_range<Cr2OutputTileIterator> Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:239,1
    - Dst: Cr2VerticalOutputStripIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:240,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:240,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:241,1
    - Dst: Cr2VerticalOutputStripIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:242,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:242,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::begin
    - Cr2VerticalOutputStripIterator
    - std::end
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
    linkageType: ''
    returnType: iterator_range<Cr2VerticalOutputStripIterator>
    signature: iterator_range<Cr2VerticalOutputStripIterator> Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rawspeed::Dsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void Dsc(\n      std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rawspeed::Dsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void Dsc(\n      std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
      format)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:285,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:285,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:286,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:287,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:288,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:290,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:290,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:291,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:291,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:293,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:294,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:295,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:296,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:297,1
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:297,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:298,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:298,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:303,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:304,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:309,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:314,1
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:319,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:321,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:325,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:327,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:327,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:328,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:331,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:332,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:337,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:343,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:343,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:344,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:347,1
    - Dst: evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:350,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:351,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:355,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:356,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:360,1
    - Dst: Optional::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:361,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:362,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 50
    argCount: 6
    argNames:
    - mRaw_
    - format_
    - frame_
    - slicing_
    - rec_
    - input_
    argTypes:
    - RawImage
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    - iPoint2D
    - Cr2SliceWidths
    - std::vector<PerComponentRecipe>
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 363
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - getBottomRight
    - getDataType
    - getCpp
    - std::get<2>
    - hasPositiveArea
    - getBpp
    - size
    - area
    - ht::isFullDecode
    - static_cast<int>
    - std::get<0>
    - ThrowRDE
    - widthOfSlice
    - std::make_tuple
    - Optional::getBottomRight
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    - std::move
    - std::get<1>
    - evaluateConsecutiveTiles
    - getTopLeft
    linkageType: ''
    returnType: void
    signature: "void Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor(\n    RawImage
      mRaw_,\n    std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/> format_,\n
      \   iPoint2D frame_, Cr2SliceWidths slicing_,\n    std::vector<PerComponentRecipe>
      rec_, Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::cref
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::cref
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
    signature: "std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
      Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl(\n    std::index_sequence<I...>
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
    signature: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
      Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:386,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::transform
    - end
    - begin
    - std::array::begin
    linkageType: ''
    returnType: std::array<uint16_t, N_COMP>
    signature: std::array<uint16_t, N_COMP> Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:400,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:413,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:414,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:415,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:427,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:431,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:432,1
    - Dst: getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:432,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:434,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:434,1
    - Dst: frameColsRemaining
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:437,1
    - Dst: predNext
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:443,1
    - Dst: getBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:444,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:450,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:455,1
    - Dst: frameColsRemaining
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:455,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:459,1
    - Dst: static_cast<const PrefixCodeDecoder&>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:460,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:460,1
    - Dst: BitStreamerJPEG::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 468
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
    - out
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
    - BitStreamerJPEG::getStreamPosition
    - getRight
    - getCrop
    - predNext
    - getU16DataAsUncroppedArray2DRef
    - getLeft
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
    - invariant
    - getTop
    - getBlock
    - decodeDifference
    - frameColsRemaining
    - std::min
    - getBottom
    - static_cast<const PrefixCodeDecoder&>
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y()
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:472,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:473,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:475,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:476,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:478,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:479,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:481,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:482,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - __builtin_unreachable
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type Cr2Decompressor<PrefixCodeDecoder>::decompress()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' rect'
    - ' nextRect'
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 4
    functionsReached:
    - getTopRight
    - getBottomRight
    - getBottomLeft
    - getRight
    - getLeft
    - getTop
    - getTopLeft
    linkageType: ''
    returnType: TileSequenceStatus
    signature: "TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D& rect,\n
      \                        const iRectangle2D& nextRect)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:65,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTopRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:66,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' rect'
    - ' nextRect'
    argTypes:
    - iRectangle2D
    - iRectangle2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: rawspeed::evaluateConsecutiveTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 4
    functionsReached:
    - getTopRight
    - getBottomRight
    - getBottomLeft
    - getRight
    - getLeft
    - getTop
    - getTopLeft
    linkageType: ''
    returnType: TileSequenceStatus
    signature: "TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D& rect,\n
      \                        const iRectangle2D& nextRect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sliceWidthIter_'
    - ' frame'
    argTypes:
    - Cr2SliceWidthIterator
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::Cr2SliceIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2SliceIterator(const Cr2SliceWidthIterator& sliceWidthIter_,\n
      \                  const iPoint2D& frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cr2SliceIterator
    signature: Cr2SliceIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2SliceIterator
    - Cr2SliceIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: operator==(const Cr2SliceIterator& a, const Cr2SliceIterator& b)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Cr2SliceIterator& a, const Cr2SliceIterator&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sliceIter_'
    - ' imgDim_'
    argTypes:
    - Cr2SliceIterator
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: rawspeed::Cr2OutputTileIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2OutputTileIterator(const Cr2SliceIterator& sliceIter_,\n                        const
      iPoint2D& imgDim_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:125,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:126,1
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:127,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:128,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - iRectangle2D::getTop
    - std::min
    - invariant
    - iRectangle2D::getHeight
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D::getHeight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:135,1
    - Dst: iRectangle2D::getBottomLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:136,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:137,1
    - Dst: iRectangle2D::getWidth
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - iRectangle2D::getBottomLeft
    - iRectangle2D::getHeight
    - invariant
    - iRectangle2D::getWidth
    linkageType: ''
    returnType: Cr2OutputTileIterator
    signature: Cr2OutputTileIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2OutputTileIterator
    - Cr2OutputTileIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: "RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n
      \                                          const Cr2OutputTileIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n
      \                                          const Cr2OutputTileIterator& b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:162,1
    - Dst: evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:169,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:170,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: rawspeed::Cr2VerticalOutputStripIterator::coalesce
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - invariant
    - evaluateConsecutiveTiles
    linkageType: ''
    returnType: std::pair<iRectangle2D, int>
    signature: std::pair<iRectangle2D, int> coalesce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' outputTileIterator_'
    - ' outputTileIterator_end_'
    argTypes:
    - Cr2OutputTileIterator
    - Cr2OutputTileIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: rawspeed::Cr2VerticalOutputStripIterator::Cr2VerticalOutputStripIterator
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Cr2VerticalOutputStripIterator(\n      const Cr2OutputTileIterator&
      outputTileIterator_,\n      const Cr2OutputTileIterator& outputTileIterator_end_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: coalesce
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator*() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - coalesce
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:196,1
    - Dst: coalesce
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: '& operator++()'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - coalesce
    - std::advance
    linkageType: ''
    returnType: Cr2VerticalOutputStripIterator
    signature: Cr2VerticalOutputStripIterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Cr2VerticalOutputStripIterator
    - Cr2VerticalOutputStripIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: "operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
      Cr2VerticalOutputStripIterator& b)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
      Cr2VerticalOutputStripIterator& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cr2SliceIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:210,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:210,1
    - Dst: Cr2SliceIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:211,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - begin
    - end
    - Cr2SliceIterator
    linkageType: ''
    returnType: iterator_range<Cr2SliceIterator>
    signature: iterator_range<Cr2SliceIterator> Cr2Decompressor<PrefixCodeDecoder>::getSlices()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:217,1
    - Dst: Cr2OutputTileIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:218,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:218,1
    - Dst: Cr2OutputTileIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:219,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 2
    functionsReached:
    - std::begin
    - Cr2OutputTileIterator
    - std::end
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
    linkageType: ''
    returnType: iterator_range<Cr2OutputTileIterator>
    signature: iterator_range<Cr2OutputTileIterator> Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:225,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:226,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:227,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:228,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:230,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:230,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:232,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((*last).getBottomRight() == dim && "Bad tiling")
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    - auto::end
    - auto::begin
    - getBottomRight
    - assert
    - invariant
    - std::next
    linkageType: ''
    returnType: iterator_range<Cr2OutputTileIterator>
    signature: iterator_range<Cr2OutputTileIterator> Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:239,1
    - Dst: Cr2VerticalOutputStripIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:240,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:240,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:241,1
    - Dst: Cr2VerticalOutputStripIterator
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:242,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:242,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - std::begin
    - Cr2VerticalOutputStripIterator
    - std::end
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
    linkageType: ''
    returnType: iterator_range<Cr2VerticalOutputStripIterator>
    signature: iterator_range<Cr2VerticalOutputStripIterator> Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rawspeed::Dsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void Dsc(\n      std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:270,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rawspeed::Dsc
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<2>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void Dsc(\n      std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
      format)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:285,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:285,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:286,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:287,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:288,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:290,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:290,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:291,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:291,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:293,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:294,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:295,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:296,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:297,1
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:297,1
    - Dst: std::get<1>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:298,1
    - Dst: std::get<2>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:298,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:303,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:304,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:309,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:314,1
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:319,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:321,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:325,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:327,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:327,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:328,1
    - Dst: ht::isFullDecode
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:331,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:332,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:337,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:343,1
    - Dst: area
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:343,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:344,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:347,1
    - Dst: evaluateConsecutiveTiles
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:350,1
    - Dst: getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:351,1
    - Dst: getTopLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:355,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:356,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:360,1
    - Dst: Optional::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:361,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:362,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 50
    argCount: 6
    argNames:
    - mRaw_
    - format_
    - frame_
    - slicing_
    - rec_
    - input_
    argTypes:
    - RawImage
    - std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/>
    - iPoint2D
    - Cr2SliceWidths
    - std::vector<PerComponentRecipe>
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 363
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - getBottomRight
    - getDataType
    - getCpp
    - std::get<2>
    - hasPositiveArea
    - getBpp
    - size
    - area
    - ht::isFullDecode
    - static_cast<int>
    - std::get<0>
    - ThrowRDE
    - widthOfSlice
    - std::make_tuple
    - Optional::getBottomRight
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
    - std::move
    - std::get<1>
    - evaluateConsecutiveTiles
    - getTopLeft
    linkageType: ''
    returnType: void
    signature: "void Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor(\n    RawImage
      mRaw_,\n    std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/> format_,\n
      \   iPoint2D frame_, Cr2SliceWidths slicing_,\n    std::vector<PerComponentRecipe>
      rec_, Array1DRef<const uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::cref
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - std::cref
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
    signature: "std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
      Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl(\n    std::index_sequence<I...>
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
    linkageType: ''
    returnType: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
    signature: std::array<std::reference_wrapper<const PrefixCodeDecoder>, N_COMP>
      Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:386,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - std::transform
    - end
    - begin
    - std::array::begin
    linkageType: ''
    returnType: std::array<uint16_t, N_COMP>
    signature: std::array<uint16_t, N_COMP> Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:400,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:413,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:414,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:415,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:427,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:431,1
    - Dst: getTop
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:432,1
    - Dst: getBottom
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:432,1
    - Dst: getLeft
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:434,1
    - Dst: getRight
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:434,1
    - Dst: frameColsRemaining
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:437,1
    - Dst: predNext
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:443,1
    - Dst: getBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:444,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:450,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:455,1
    - Dst: frameColsRemaining
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:455,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:459,1
    - Dst: static_cast<const PrefixCodeDecoder&>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:460,1
    - Dst: decodeDifference
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:460,1
    - Dst: BitStreamerJPEG::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 468
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 1
    functionsReached:
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
    - out
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
    - BitStreamerJPEG::getStreamPosition
    - getRight
    - getCrop
    - predNext
    - getU16DataAsUncroppedArray2DRef
    - getLeft
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
    - invariant
    - getTop
    - getBlock
    - decodeDifference
    - frameColsRemaining
    - std::min
    - getBottom
    - static_cast<const PrefixCodeDecoder&>
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y()
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:472,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:473,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:475,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:476,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:478,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:479,1
    - Dst: std::make_tuple
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:481,1
    - Dst: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:482,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - __builtin_unreachable
    - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
    linkageType: ''
    returnType: ByteStream::size_type
    signature: ByteStream::size_type Cr2Decompressor<PrefixCodeDecoder>::decompress()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: rawspeed::init_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: rawspeed::fill_input_buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: boolean fill_input_buffer(j_decompress_ptr cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:62,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:68,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - j_decompress_ptr
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: rawspeed::skip_input_data
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<size_t>
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::term_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void term_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: j_decompress_ptr::mem::alloc_small
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: static_cast<jpeg_source_mgr*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cinfo
    - buffer
    - nbytes
    argTypes:
    - j_decompress_ptr
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: rawspeed::jpeg_mem_src_int
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<j_common_ptr>
    - j_decompress_ptr::mem::alloc_small
    - static_cast<jpeg_source_mgr*>
    linkageType: ''
    returnType: void
    signature: "void jpeg_mem_src_int(j_decompress_ptr cinfo, const unsigned char*
      buffer,\n                 long nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:103,1
    - Dst: j_common_ptr::err::format_message
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: rawspeed::my_error_throw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::fill
    - j_common_ptr::err::format_message
    - ThrowRDE
    linkageType: ''
    returnType: METHODDEF
    signature: METHODDEF my_error_throw(j_common_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: rawspeed::init_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: rawspeed::fill_input_buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: boolean fill_input_buffer(j_decompress_ptr cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:62,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:68,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - j_decompress_ptr
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: rawspeed::skip_input_data
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<size_t>
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::term_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void term_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: j_decompress_ptr::mem::alloc_small
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: static_cast<jpeg_source_mgr*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cinfo
    - buffer
    - nbytes
    argTypes:
    - j_decompress_ptr
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: rawspeed::jpeg_mem_src_int
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<j_common_ptr>
    - j_decompress_ptr::mem::alloc_small
    - static_cast<jpeg_source_mgr*>
    linkageType: ''
    returnType: void
    signature: "void jpeg_mem_src_int(j_decompress_ptr cinfo, const unsigned char*
      buffer,\n                 long nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:103,1
    - Dst: j_common_ptr::err::format_message
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: rawspeed::my_error_throw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::fill
    - j_common_ptr::err::format_message
    - ThrowRDE
    linkageType: ''
    returnType: METHODDEF
    signature: METHODDEF my_error_throw(j_common_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct(const JpegDecompressStruct&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct(JpegDecompressStruct&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: "&\n  operator=(const JpegDecompressStruct&) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JpegDecompressStruct
    signature: "JpegDecompressStruct &\n  operator=(const JpegDecompressStruct&) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: '& operator=(JpegDecompressStruct&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JpegDecompressStruct
    signature: JpegDecompressStruct & operator=(JpegDecompressStruct&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_create_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:120,1
    - Dst: jpeg_std_error
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - jpeg_create_decompress
    - jpeg_std_error
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_destroy_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: ~JpegDecompressStruct()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - jpeg_destroy_decompress
    linkageType: ''
    returnType: void
    signature: void ~JpegDecompressStruct()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_mem_src
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: const_cast<uint8_t*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: jpeg_mem_src_int
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: jpeg_read_header
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:139,1
    - Dst: static_cast<boolean>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:140,1
    - Dst: jpeg_start_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:143,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:144,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:148,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:155,1
    - Dst: jpeg_read_scanlines
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:156,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:157,1
    - Dst: jpeg_finish_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:159,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:162,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:163,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:165,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:168,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - offX
    - offY
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 170
    functionName: rawspeed::JpegDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - min
    - jpeg_finish_decompress
    - const_cast<uint8_t*>
    - tmp
    - jpeg_mem_src_int
    - jpeg_start_decompress
    - begin
    - getSize
    - ThrowRDE
    - jpeg_read_scanlines
    - static_cast<boolean>
    - jpeg_mem_src
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - out
    - static_cast<int>
    - std::vector::resize
    - jpeg_read_header
    linkageType: ''
    returnType: void
    signature: "void JpegDecompressor::decode(uint32_t offX,\n                              uint32_t
      offY)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: rawspeed::init_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: rawspeed::fill_input_buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: boolean fill_input_buffer(j_decompress_ptr cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:62,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:68,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - j_decompress_ptr
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: rawspeed::skip_input_data
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<size_t>
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::term_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void term_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: j_decompress_ptr::mem::alloc_small
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: static_cast<jpeg_source_mgr*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cinfo
    - buffer
    - nbytes
    argTypes:
    - j_decompress_ptr
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: rawspeed::jpeg_mem_src_int
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<j_common_ptr>
    - j_decompress_ptr::mem::alloc_small
    - static_cast<jpeg_source_mgr*>
    linkageType: ''
    returnType: void
    signature: "void jpeg_mem_src_int(j_decompress_ptr cinfo, const unsigned char*
      buffer,\n                 long nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:103,1
    - Dst: j_common_ptr::err::format_message
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: rawspeed::my_error_throw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::fill
    - j_common_ptr::err::format_message
    - ThrowRDE
    linkageType: ''
    returnType: METHODDEF
    signature: METHODDEF my_error_throw(j_common_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: rawspeed::init_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: rawspeed::fill_input_buffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boolean
    signature: boolean fill_input_buffer(j_decompress_ptr cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:62,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:68,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cinfo
    - num_bytes
    argTypes:
    - j_decompress_ptr
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: rawspeed::skip_input_data
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<size_t>
    - ThrowIOE
    linkageType: ''
    returnType: void
    signature: void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: rawspeed::term_source
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void term_source(j_decompress_ptr /*cinfo*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: j_decompress_ptr::mem::alloc_small
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: reinterpret_cast<j_common_ptr>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:85,1
    - Dst: static_cast<jpeg_source_mgr*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cinfo
    - buffer
    - nbytes
    argTypes:
    - j_decompress_ptr
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: rawspeed::jpeg_mem_src_int
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<j_common_ptr>
    - j_decompress_ptr::mem::alloc_small
    - static_cast<jpeg_source_mgr*>
    linkageType: ''
    returnType: void
    signature: "void jpeg_mem_src_int(j_decompress_ptr cinfo, const unsigned char*
      buffer,\n                 long nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:103,1
    - Dst: j_common_ptr::err::format_message
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_common_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: rawspeed::my_error_throw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - std::array::fill
    - j_common_ptr::err::format_message
    - ThrowRDE
    linkageType: ''
    returnType: METHODDEF
    signature: METHODDEF my_error_throw(j_common_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct(const JpegDecompressStruct&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct(JpegDecompressStruct&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: "&\n  operator=(const JpegDecompressStruct&) noexcept"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JpegDecompressStruct
    signature: "JpegDecompressStruct &\n  operator=(const JpegDecompressStruct&) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: '& operator=(JpegDecompressStruct&&) noexcept'
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JpegDecompressStruct
    signature: JpegDecompressStruct & operator=(JpegDecompressStruct&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_create_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:120,1
    - Dst: jpeg_std_error
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: rawspeed::JpegDecompressStruct
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - jpeg_create_decompress
    - jpeg_std_error
    linkageType: ''
    returnType: void
    signature: void JpegDecompressStruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_destroy_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: ~JpegDecompressStruct()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - jpeg_destroy_decompress
    linkageType: ''
    returnType: void
    signature: void ~JpegDecompressStruct()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_mem_src
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: const_cast<uint8_t*>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:134,1
    - Dst: jpeg_mem_src_int
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:136,1
    - Dst: jpeg_read_header
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:139,1
    - Dst: static_cast<boolean>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:140,1
    - Dst: jpeg_start_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:143,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:144,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:148,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:155,1
    - Dst: jpeg_read_scanlines
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:156,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:157,1
    - Dst: jpeg_finish_decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:159,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:162,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:163,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:165,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:168,1
    - Dst: tmp
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - offX
    - offY
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 170
    functionName: rawspeed::JpegDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    functionUses: 0
    functionsReached:
    - min
    - jpeg_finish_decompress
    - const_cast<uint8_t*>
    - tmp
    - jpeg_mem_src_int
    - jpeg_start_decompress
    - begin
    - getSize
    - ThrowRDE
    - jpeg_read_scanlines
    - static_cast<boolean>
    - jpeg_mem_src
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - out
    - static_cast<int>
    - std::vector::resize
    - jpeg_read_header
    linkageType: ''
    returnType: void
    signature: "void JpegDecompressor::decode(uint32_t offX,\n                              uint32_t
      offY)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:44,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:44,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:50,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: rawspeed::SonyArw2Decompressor::SonyArw2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::SonyArw2Decompressor(RawImage img, ByteStream
      input_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:58,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:59,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:59,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:60,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:60,1
    - Dst: reinterpret_cast<RawImageDataU16&>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:63,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:66,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:66,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:67,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:67,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:69,1
    - Dst: BitStreamerLSB::peekBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:71,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:74,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:76,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:77,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:78,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:87,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:101,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:102,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:106,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:107,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 110
    functionName: rawspeed::SonyArw2Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - implicit_cast<uint16_t>
    - BitStreamerLSB::getBits
    - reinterpret_cast<std::byte*>
    - ByteStream::skipBytes
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::peekBits
    - ByteStream::peekStream
    - Array2DRef::width
    - reinterpret_cast<RawImageDataU16&>
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompressRow(int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:113,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:115,1
    - Dst: rawspeed::SonyArw2Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:122,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:125,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:125,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: rawspeed::SonyArw2Decompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - setError
    - rawspeed::SonyArw2Decompressor::decompressRow
    - __builtin_unreachable
    - invariant
    - what
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SonyArw2Decompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:141,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:145,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: rawspeed::SonyArw2Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - rawspeed::SonyArw2Decompressor::decompressThread
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompress() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:43,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:44,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:44,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:46,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:50,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - img
    - input_
    argTypes:
    - RawImage
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: rawspeed::SonyArw2Decompressor::SonyArw2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - std::move
    - ThrowRDE
    - getDataType
    - getCpp
    - ByteStream::peekStream
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::SonyArw2Decompressor(RawImage img, ByteStream
      input_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:58,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:59,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:59,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:60,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:60,1
    - Dst: reinterpret_cast<RawImageDataU16&>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:63,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:66,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:66,1
    - Dst: ByteStream::peekStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:67,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:67,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:69,1
    - Dst: BitStreamerLSB::peekBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:71,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:74,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:76,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:77,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:78,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:87,1
    - Dst: BitStreamerLSB::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:101,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:102,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:105,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:106,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:107,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 110
    functionName: rawspeed::SonyArw2Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - std::min
    - implicit_cast<uint16_t>
    - BitStreamerLSB::getBits
    - reinterpret_cast<std::byte*>
    - ByteStream::skipBytes
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - ByteStream::peekRemainingBuffer
    - BitStreamerLSB::peekBits
    - ByteStream::peekStream
    - Array2DRef::width
    - reinterpret_cast<RawImageDataU16&>
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompressRow(int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:113,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:114,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:115,1
    - Dst: rawspeed::SonyArw2Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:122,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:125,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:125,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: rawspeed::SonyArw2Decompressor::decompressThread
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - setError
    - rawspeed::SonyArw2Decompressor::decompressRow
    - __builtin_unreachable
    - invariant
    - what
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompressThread() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SonyArw2Decompressor::decompressThread
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:141,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:145,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: rawspeed::SonyArw2Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - isTooManyErrors
    - rawspeed::SonyArw2Decompressor::decompressThread
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SonyArw2Decompressor::decompress() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:46,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:48,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getBpp
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void Cr2LJpegDecoder::Cr2LJpegDecoder(ByteStream bs, const RawImage&
      img)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:63,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:68,1
    - Dst: Cr2SliceWidths
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:71,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:93,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:109,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:118,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:133,1
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:137,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:140,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:141,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:142,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:143,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:144,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:146,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:151,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:152,1
    - Dst: Cr2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:153,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame.compInfo[0].superV == 1)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 154
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 154
    functionName: rawspeed::Cr2LJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - empty
    - getInitialPredictors
    - std::vector::reserve
    - implicit_cast<int>
    - std::vector::size
    - Cr2SliceWidths
    - ThrowRDE
    - std::get<0>
    - assert
    - getPrefixCodeDecoders
    - std::back_inserter
    - peekRemainingBuffer
    - iPoint2D
    - Cr2Decompressor::decompress
    - std::generate_n
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type Cr2LJpegDecoder::decodeScan()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:159,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:161,1
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' slicing_'
    argTypes:
    - Cr2SliceWidths
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::Cr2LJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    - widthOfSlice
    linkageType: ''
    returnType: void
    signature: void Cr2LJpegDecoder::decode(const Cr2SliceWidths& slicing_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:46,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:48,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:48,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:49,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getBpp
    - getDataType
    - getCpp
    linkageType: ''
    returnType: void
    signature: void Cr2LJpegDecoder::Cr2LJpegDecoder(ByteStream bs, const RawImage&
      img)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:63,1
    - Dst: empty
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:68,1
    - Dst: Cr2SliceWidths
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:71,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:93,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:109,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:118,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:133,1
    - Dst: std::get<0>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:137,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:140,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:141,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:142,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:143,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:144,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:146,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:146,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:151,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:152,1
    - Dst: Cr2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:153,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame.compInfo[0].superV == 1)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 154
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 154
    functionName: rawspeed::Cr2LJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - empty
    - getInitialPredictors
    - std::vector::reserve
    - implicit_cast<int>
    - std::vector::size
    - Cr2SliceWidths
    - ThrowRDE
    - std::get<0>
    - assert
    - getPrefixCodeDecoders
    - std::back_inserter
    - peekRemainingBuffer
    - iPoint2D
    - Cr2Decompressor::decompress
    - std::generate_n
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type Cr2LJpegDecoder::decodeScan()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: widthOfSlice
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:159,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:161,1
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' slicing_'
    argTypes:
    - Cr2SliceWidths
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::Cr2LJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    - widthOfSlice
    linkageType: ''
    returnType: void
    signature: void Cr2LJpegDecoder::decode(const Cr2SliceWidths& slicing_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:49,1
    - Dst: rawspeed::CrwDecompressor::initHuffTables
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:51,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:51,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:52,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:66,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:68,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 4
    argNames:
    - img
    - dec_table
    - input_
    - lowbitInput_
    argTypes:
    - RawImage
    - uint32_t
    - Array1DRef<const uint8_t>
    - Optional<Array1DRef<const uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: rawspeed::CrwDecompressor::CrwDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - size
    - getCrop
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - rawspeed::CrwDecompressor::initHuffTables
    linkageType: ''
    returnType: void
    signature: "void CrwDecompressor::CrwDecompressor(\n    RawImage img, uint32_t
      dec_table, Array1DRef<const uint8_t> input_,\n    Optional<Array1DRef<const
      uint8_t>> lowbitInput_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:76,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:79,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:79,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:80,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:80,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ncpl
    - values
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: rawspeed::CrwDecompressor::makeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - HuffmanCode::setCodeValues
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - PrefixCodeDecoder::setup
    - invariant
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: "PrefixCodeDecoder<> CrwDecompressor::makeDecoder(const uint8_t* ncpl,\n
      \                                                const uint8_t* values)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:89,1
    - Dst: rawspeed::CrwDecompressor::makeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:159,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:159,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:160,1
    - Dst: rawspeed::CrwDecompressor::makeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:161,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:161,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 165
    functionName: rawspeed::CrwDecompressor::initHuffTables
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - data
    - rawspeed::CrwDecompressor::makeDecoder
    linkageType: ''
    returnType: CrwDecompressor::crw_hts
    signature: CrwDecompressor::crw_hts CrwDecompressor::initHuffTables(uint32_t table)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:170,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:174,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:177,1
    - Dst: decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:177,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:180,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:197,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:202,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:204,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - diffBuf
    - ' mHuff'
    - ' bs'
    argTypes:
    - std::array<int16_t, 64>*
    - crw_hts
    - BitStreamerJPEG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 207
    functionName: rawspeed::CrwDecompressor::decodeBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - implicit_cast<int16_t>
    - invariant
    - decodeCodeValue
    - implicit_cast<uint8_t>
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: "void CrwDecompressor::decodeBlock(std::array<int16_t, 64>* diffBuf,\n
      \                                        const crw_hts& mHuff,\n                                         BitStreamerJPEG&
      bs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:211,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:212,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:212,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:213,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:213,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:214,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:214,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:220,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:220,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:221,1
    - Dst: rawspeed::CrwDecompressor::decodeBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:233,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:241,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:250,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:251,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:253,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:253,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:257,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:257,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:258,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:258,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:263,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:263,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:264,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:265,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:266,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:267,1
    - Dst: lowbits
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:268,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:273,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:276,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 286
    functionName: rawspeed::CrwDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - lowbits
    - rawspeed::CrwDecompressor::decodeBlock
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void CrwDecompressor::decompress()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:49,1
    - Dst: rawspeed::CrwDecompressor::initHuffTables
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:51,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:51,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:52,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:60,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:66,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:68,1
    - Dst: getCrop
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 4
    argNames:
    - img
    - dec_table
    - input_
    - lowbitInput_
    argTypes:
    - RawImage
    - uint32_t
    - Array1DRef<const uint8_t>
    - Optional<Array1DRef<const uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: rawspeed::CrwDecompressor::CrwDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - std::move
    - size
    - getCrop
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - rawspeed::CrwDecompressor::initHuffTables
    linkageType: ''
    returnType: void
    signature: "void CrwDecompressor::CrwDecompressor(\n    RawImage img, uint32_t
      dec_table, Array1DRef<const uint8_t> input_,\n    Optional<Array1DRef<const
      uint8_t>> lowbitInput_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:76,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:79,1
    - Dst: Buffer
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:79,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:80,1
    - Dst: Array1DRef<const uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:80,1
    - Dst: PrefixCodeDecoder::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ncpl
    - values
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: rawspeed::CrwDecompressor::makeDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 1
    functionsReached:
    - HuffmanCode::setCodeValues
    - Buffer
    - Array1DRef<const uint8_t>
    - HuffmanCode::setNCodesPerLength
    - PrefixCodeDecoder::setup
    - invariant
    linkageType: ''
    returnType: PrefixCodeDecoder<>
    signature: "PrefixCodeDecoder<> CrwDecompressor::makeDecoder(const uint8_t* ncpl,\n
      \                                                const uint8_t* values)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:89,1
    - Dst: rawspeed::CrwDecompressor::makeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:159,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:159,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:160,1
    - Dst: rawspeed::CrwDecompressor::makeDecoder
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:161,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:161,1
    - Dst: data
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 165
    functionName: rawspeed::CrwDecompressor::initHuffTables
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 2
    functionsReached:
    - ThrowRDE
    - data
    - rawspeed::CrwDecompressor::makeDecoder
    linkageType: ''
    returnType: CrwDecompressor::crw_hts
    signature: CrwDecompressor::crw_hts CrwDecompressor::initHuffTables(uint32_t table)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:170,1
    - Dst: fill
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:174,1
    - Dst: implicit_cast<uint8_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:177,1
    - Dst: decodeCodeValue
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:177,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:180,1
    - Dst: getBitsNoFill
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:197,1
    - Dst: rawspeed::AbstractPrefixCodeDecoder::extend
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:202,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:204,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - diffBuf
    - ' mHuff'
    - ' bs'
    argTypes:
    - std::array<int16_t, 64>*
    - crw_hts
    - BitStreamerJPEG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 207
    functionName: rawspeed::CrwDecompressor::decodeBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractPrefixCodeDecoder::extend
    - implicit_cast<int16_t>
    - invariant
    - decodeCodeValue
    - implicit_cast<uint8_t>
    - getBitsNoFill
    - fill
    linkageType: ''
    returnType: void
    signature: "void CrwDecompressor::decodeBlock(std::array<int16_t, 64>* diffBuf,\n
      \                                        const crw_hts& mHuff,\n                                         BitStreamerJPEG&
      bs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:211,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:212,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:212,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:213,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:213,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:214,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:214,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:219,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:220,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:220,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:221,1
    - Dst: rawspeed::CrwDecompressor::decodeBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:233,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:241,1
    - Dst: isIntN
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:250,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:251,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:253,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:253,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:257,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:257,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:258,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:258,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:263,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:263,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:264,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:265,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:266,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:267,1
    - Dst: lowbits
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:268,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:273,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:276,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 286
    functionName: rawspeed::CrwDecompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Array2DRef::height
    - lowbits
    - rawspeed::CrwDecompressor::decodeBlock
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - invariant
    - out
    - isIntN
    - Array2DRef::width
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void CrwDecompressor::decompress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:78,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:78,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: operator&(VC5Tag LHS, VC5Tag RHS)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - static_cast<VC5Tag>
    - static_cast<value_type>
    linkageType: ''
    returnType: VC5Tag
    signature: VC5Tag operator&(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: rawspeed::matches
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matches(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: rawspeed::is
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:92,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator-(VC5Tag tag)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - static_cast<VC5Tag>
    - static_cast<value_type>
    linkageType: ''
    returnType: VC5Tag
    signature: VC5Tag operator-(VC5Tag tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: rawspeed::VC5Decompressor::BandData
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    linkageType: ''
    returnType: void
    signature: void BandData(int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' wavelet_'
    argTypes:
    - Wavelet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: rawspeed::VC5Decompressor::Wavelet::AbstractBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractBand(Wavelet& wavelet_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: ~AbstractBand()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractBand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' wavelet_'
    argTypes:
    - Wavelet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: rawspeed::VC5Decompressor::Wavelet::ReconstructableBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReconstructableBand(Wavelet& wavelet_, bool clampUint_ = false,\n
      \                                  bool finalWavelet_ = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' wavelet_'
    - input_
    argTypes:
    - Wavelet
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: rawspeed::VC5Decompressor::Wavelet::AbstractDecodeableBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AbstractDecodeableBand(Wavelet& wavelet_,\n                                      Array1DRef<const
      uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' wavelet_'
    - input_
    - ' decoder_'
    - quant_
    argTypes:
    - Wavelet
    - Array1DRef<const uint8_t>
    - Optional<PrefixCodeDecoder>
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: rawspeed::VC5Decompressor::Wavelet::HighPassBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HighPassBand(Wavelet& wavelet_, Array1DRef<const uint8_t> input_,\n
      \                  const Optional<PrefixCodeDecoder>& decoder_, int16_t quant_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: rawspeed::VC5Decompressor::Wavelet::getValidBandMask
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getValidBandMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:78,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:78,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: operator&(VC5Tag LHS, VC5Tag RHS)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - static_cast<VC5Tag>
    - static_cast<value_type>
    linkageType: ''
    returnType: VC5Tag
    signature: VC5Tag operator&(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: rawspeed::matches
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matches(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LHS
    - RHS
    argTypes:
    - VC5Tag
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: rawspeed::is
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is(VC5Tag LHS, VC5Tag RHS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VC5Tag>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:92,1
    - Dst: static_cast<value_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - VC5Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator-(VC5Tag tag)
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - static_cast<VC5Tag>
    - static_cast<value_type>
    linkageType: ''
    returnType: VC5Tag
    signature: VC5Tag operator-(VC5Tag tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: rawspeed::VC5Decompressor::BandData
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    linkageType: ''
    returnType: void
    signature: void BandData(int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' wavelet_'
    argTypes:
    - Wavelet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: rawspeed::VC5Decompressor::Wavelet::AbstractBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractBand(Wavelet& wavelet_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: ~AbstractBand()
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AbstractBand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' wavelet_'
    argTypes:
    - Wavelet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: rawspeed::VC5Decompressor::Wavelet::ReconstructableBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReconstructableBand(Wavelet& wavelet_, bool clampUint_ = false,\n
      \                                  bool finalWavelet_ = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' wavelet_'
    - input_
    argTypes:
    - Wavelet
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: rawspeed::VC5Decompressor::Wavelet::AbstractDecodeableBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AbstractDecodeableBand(Wavelet& wavelet_,\n                                      Array1DRef<const
      uint8_t> input_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' wavelet_'
    - input_
    - ' decoder_'
    - quant_
    argTypes:
    - Wavelet
    - Array1DRef<const uint8_t>
    - Optional<PrefixCodeDecoder>
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: rawspeed::VC5Decompressor::Wavelet::HighPassBand
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HighPassBand(Wavelet& wavelet_, Array1DRef<const uint8_t> input_,\n
      \                  const Optional<PrefixCodeDecoder>& decoder_, int16_t quant_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: rawspeed::VC5Decompressor::Wavelet::getValidBandMask
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getValidBandMask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::AbstractSamsungDecompressor::AbstractSamsungDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractSamsungDecompressor(RawImage raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: rawspeed::AbstractSamsungDecompressor::AbstractSamsungDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractSamsungDecompressor(RawImage raw)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:46,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:47,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:47,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:49,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:50,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:50,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:51,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:52,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:52,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: rawspeed::LJpegDecoder::LJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - ThrowRDE
    - getDataType
    - getCpp
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void LJpegDecoder::LJpegDecoder(ByteStream bs, const RawImage& img)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:69,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:70,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:72,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:75,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:77,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:80,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:82,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:87,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:88,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:89,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:90,1
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - offsetX
    - offsetY
    - width
    - height
    - maxDim_
    - fixDng16Bug_
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - iPoint2D
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 102
    functionName: rawspeed::LJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    - ThrowRDE
    - implicit_cast<unsigned>
    - static_cast<unsigned>
    - iPoint2D::hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void LJpegDecoder::decode(uint32_t offsetX, uint32_t offsetY, uint32_t
      width,\n                          uint32_t height, iPoint2D maxDim_,\n                          bool
      fixDng16Bug_)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:105,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:108,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:112,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:117,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:118,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:118,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:119,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:120,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:122,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:122,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:128,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:128,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:129,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:133,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:137,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:141,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:144,1
    - Dst: implicit_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:157,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:163,1
    - Dst: LJpegDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: rawspeed::LJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - getInitialPredictors
    - implicit_cast<uint64_t>
    - peekRemainingBuffer
    - std::vector::reserve
    - implicit_cast<int>
    - std::vector::size
    - ThrowRDE
    - getPrefixCodeDecoders
    - std::back_inserter
    - invariant
    - getCpp
    - static_cast<int>
    - iPoint2D
    - auto::area
    - implicit_cast<int64_t>
    - LJpegDecompressor::decode
    - std::generate_n
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type LJpegDecoder::decodeScan()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:45,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:46,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:47,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:47,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:49,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:49,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:50,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:50,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:51,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:52,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:52,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:55,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - bs
    - ' img'
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: rawspeed::LJpegDecoder::LJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - ThrowRDE
    - getDataType
    - getCpp
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void LJpegDecoder::LJpegDecoder(ByteStream bs, const RawImage& img)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:69,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:70,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:72,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:75,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:77,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:80,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:82,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:87,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:88,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:89,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:90,1
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - offsetX
    - offsetY
    - width
    - height
    - maxDim_
    - fixDng16Bug_
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - iPoint2D
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 102
    functionName: rawspeed::LJpegDecoder::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    - ThrowRDE
    - implicit_cast<unsigned>
    - static_cast<unsigned>
    - iPoint2D::hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void LJpegDecoder::decode(uint32_t offsetX, uint32_t offsetY, uint32_t
      width,\n                          uint32_t height, iPoint2D maxDim_,\n                          bool
      fixDng16Bug_)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:105,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:108,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:112,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:117,1
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:118,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:118,1
    - Dst: getPrefixCodeDecoders
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:119,1
    - Dst: getInitialPredictors
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:120,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:122,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:122,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:128,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:128,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:129,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:131,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:133,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:136,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:137,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:141,1
    - Dst: auto::area
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:144,1
    - Dst: implicit_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:145,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:157,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:163,1
    - Dst: LJpegDecompressor::decode
      Src: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: rawspeed::LJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - getInitialPredictors
    - implicit_cast<uint64_t>
    - peekRemainingBuffer
    - std::vector::reserve
    - implicit_cast<int>
    - std::vector::size
    - ThrowRDE
    - getPrefixCodeDecoders
    - std::back_inserter
    - invariant
    - getCpp
    - static_cast<int>
    - iPoint2D
    - auto::area
    - implicit_cast<int64_t>
    - LJpegDecompressor::decode
    - std::generate_n
    linkageType: ''
    returnType: Buffer::size_type
    signature: Buffer::size_type LJpegDecoder::decodeScan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - img
    argTypes:
    - Buffer
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::JpegDecompressor::JpegDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void JpegDecompressor(Buffer bs, RawImage img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - img
    argTypes:
    - Buffer
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::JpegDecompressor::JpegDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void JpegDecompressor(Buffer bs, RawImage img)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: rawspeed::AbstractLJpegDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:50,1
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:51,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bs
    - img
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - dim::hasPositiveArea
    - std::move
    - setByteOrder
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::AbstractLJpegDecoder(ByteStream bs, RawImage
      img)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::getNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:66,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:67,1
    - Dst: rawspeed::AbstractLJpegDecoder::getNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:76,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:77,1
    - Dst: peekU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:77,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:83,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseDHT
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:91,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:93,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseSOF
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:104,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseSOS
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:105,1
    - Dst: rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:111,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:114,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseDRI
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:124,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 125
    functionName: rawspeed::AbstractLJpegDecoder::decodeSOI
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 6
    functionsReached:
    - peekU16
    - rawspeed::AbstractLJpegDecoder::parseSOF
    - rawspeed::AbstractLJpegDecoder::parseDRI
    - rawspeed::AbstractLJpegDecoder::getNextMarker
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::AbstractLJpegDecoder::parseDHT
    - rawspeed::AbstractLJpegDecoder::parseSOS
    - rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    - getStream
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::decodeSOI()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:128,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:129,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:130,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:134,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:140,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:143,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:147,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:148,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:152,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:153,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:156,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:158,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:163,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:166,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:168,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:170,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:173,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:175,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:176,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - sofInput
    - sof
    argTypes:
    - ByteStream
    - SOFInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 179
    functionName: rawspeed::AbstractLJpegDecoder::parseSOF
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::getRemainSize
    - getCpp
    - static_cast<int>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseSOF(ByteStream sofInput, SOFInfo* sof)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:182,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:184,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:185,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:187,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:188,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:191,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:194,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:195,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:204,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:210,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:213,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:216,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:217,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:219,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:221,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:223,1
    - Dst: decodeScan
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:225,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - sos
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 228
    functionName: rawspeed::AbstractLJpegDecoder::parseSOS
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 1
    functionsReached:
    - size
    - skipBytes
    - ByteStream::getByte
    - ByteStream::getRemainSize
    - ThrowRDE
    - invariant
    - decodeScan
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseSOS(ByteStream sos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:231,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:235,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:238,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:239,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:242,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:248,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:248,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:252,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:255,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:256,1
    - Dst: auto::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:256,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:260,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:262,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:266,1
    - Dst: std::make_unique<decltype(hc)>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:266,1
    - Dst: std::make_unique<PrefixCodeDecoder<>>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:268,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:268,1
    - Dst: auto::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:269,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:270,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:271,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - dht
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (PrefixCodeDecoderStore.size() == huffmanCodeStore.size())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 274
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 274
    functionName: rawspeed::AbstractLJpegDecoder::parseDHT
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - HuffmanCode::setCodeValues
    - std::make_unique<PrefixCodeDecoder<>>
    - size
    - ByteStream::getBuffer
    - emplace_back
    - std::make_unique<decltype(hc)>
    - std::move
    - auto::setup
    - HuffmanCode::setNCodesPerLength
    - ByteStream::getByte
    - ByteStream::getRemainSize
    - ThrowRDE
    - assert
    - get
    - auto::getAsArray1DRef
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseDHT(ByteStream dht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:277,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:278,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dri
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: rawspeed::AbstractLJpegDecoder::parseDRI
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getRemainSize
    - ByteStream::getU16
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseDRI(ByteStream dri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advanceToNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:283,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:286,1
    - Dst: peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:288,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - allowskip
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: rawspeed::AbstractLJpegDecoder::getNextMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - peekMarker
    - skipBytes
    - advanceToNextMarker
    linkageType: ''
    returnType: JpegMarker
    signature: JpegMarker AbstractLJpegDecoder::getNextMarker(bool allowskip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: rawspeed::AbstractLJpegDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:50,1
    - Dst: setByteOrder
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:51,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:53,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bs
    - img
    argTypes:
    - ByteStream
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - dim::hasPositiveArea
    - std::move
    - setByteOrder
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::AbstractLJpegDecoder(ByteStream bs, RawImage
      img)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::getNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:66,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:67,1
    - Dst: rawspeed::AbstractLJpegDecoder::getNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:76,1
    - Dst: getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:77,1
    - Dst: peekU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:77,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:83,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseDHT
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:91,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:93,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseSOF
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:104,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseSOS
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:105,1
    - Dst: rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:111,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:114,1
    - Dst: rawspeed::AbstractLJpegDecoder::parseDRI
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:124,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 125
    functionName: rawspeed::AbstractLJpegDecoder::decodeSOI
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 6
    functionsReached:
    - peekU16
    - rawspeed::AbstractLJpegDecoder::parseSOF
    - rawspeed::AbstractLJpegDecoder::parseDRI
    - rawspeed::AbstractLJpegDecoder::getNextMarker
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::AbstractLJpegDecoder::parseDHT
    - rawspeed::AbstractLJpegDecoder::parseSOS
    - rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
    - getStream
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::decodeSOI()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:128,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:129,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:130,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:134,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:140,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:143,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:147,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:148,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:152,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:153,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:156,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:158,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:163,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:166,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:168,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:170,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:173,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:175,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:176,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - sofInput
    - sof
    argTypes:
    - ByteStream
    - SOFInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 179
    functionName: rawspeed::AbstractLJpegDecoder::parseSOF
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::getRemainSize
    - getCpp
    - static_cast<int>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseSOF(ByteStream sofInput, SOFInfo* sof)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:182,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:184,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:185,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:187,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:188,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:191,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:192,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:194,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:195,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:204,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:210,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:213,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:216,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:217,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:219,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:221,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:223,1
    - Dst: decodeScan
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:225,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - sos
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 228
    functionName: rawspeed::AbstractLJpegDecoder::parseSOS
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - size
    - skipBytes
    - ByteStream::getByte
    - ByteStream::getRemainSize
    - ThrowRDE
    - invariant
    - decodeScan
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseSOS(ByteStream sos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:231,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:235,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:238,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:239,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:242,1
    - Dst: HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:248,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:248,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:252,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:255,1
    - Dst: HuffmanCode::setCodeValues
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:256,1
    - Dst: auto::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:256,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:259,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:260,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:262,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:266,1
    - Dst: std::make_unique<decltype(hc)>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:266,1
    - Dst: std::make_unique<PrefixCodeDecoder<>>
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:268,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:268,1
    - Dst: auto::setup
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:269,1
    - Dst: auto::get
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:270,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:271,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - dht
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (PrefixCodeDecoderStore.size() == huffmanCodeStore.size())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 274
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 274
    functionName: rawspeed::AbstractLJpegDecoder::parseDHT
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - auto::get
    - HuffmanCode::setCodeValues
    - std::make_unique<PrefixCodeDecoder<>>
    - size
    - ByteStream::getBuffer
    - emplace_back
    - std::make_unique<decltype(hc)>
    - std::move
    - auto::setup
    - HuffmanCode::setNCodesPerLength
    - ByteStream::getByte
    - ByteStream::getRemainSize
    - ThrowRDE
    - assert
    - get
    - auto::getAsArray1DRef
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseDHT(ByteStream dht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:277,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:278,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dri
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: rawspeed::AbstractLJpegDecoder::parseDRI
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getRemainSize
    - ByteStream::getU16
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void AbstractLJpegDecoder::parseDRI(ByteStream dri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advanceToNextMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:283,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:286,1
    - Dst: peekMarker
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:288,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - allowskip
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: rawspeed::AbstractLJpegDecoder::getNextMarker
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - ThrowRDE
    - peekMarker
    - skipBytes
    - advanceToNextMarker
    linkageType: ''
    returnType: JpegMarker
    signature: JpegMarker AbstractLJpegDecoder::getNextMarker(bool allowskip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:63,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:64,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
    - static_cast<SamsungV2Decompressor::OptFlags>
    linkageType: ''
    returnType: SamsungV2Decompressor::OptFlags
    signature: "SamsungV2Decompressor::OptFlags operator|(SamsungV2Decompressor::OptFlags
      lhs,\n          SamsungV2Decompressor::OptFlags rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:73,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:74,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SamsungV2Decompressor::OptFlags>
    - "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
    linkageType: ''
    returnType: bool
    signature: "bool operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:63,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:64,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
    - static_cast<SamsungV2Decompressor::OptFlags>
    linkageType: ''
    returnType: SamsungV2Decompressor::OptFlags
    signature: "SamsungV2Decompressor::OptFlags operator|(SamsungV2Decompressor::OptFlags
      lhs,\n          SamsungV2Decompressor::OptFlags rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:73,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:74,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SamsungV2Decompressor::OptFlags>
    - "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
    linkageType: ''
    returnType: bool
    signature: "bool operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:86,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    - Dst: signExtend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - len
    argTypes:
    - BitStreamerMSB32
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: rawspeed::SamsungV2Decompressor::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - signExtend
    - implicit_cast<int16_t>
    - invariant
    - getBits
    linkageType: ''
    returnType: int16_t
    signature: int16_t SamsungV2Decompressor::getDiff(BitStreamerMSB32& pump, uint32_t
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:93,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:93,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:94,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:102,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:106,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:108,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:112,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:113,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:116,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:117,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:118,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:119,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:120,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:121,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:122,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:126,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:128,1
    - Dst: static_cast<OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:129,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:131,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:132,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:133,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:134,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:135,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:137,1
    - Dst: BitStreamerMSB32::getInputPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:141,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:144,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:146,1
    - Dst: BitStreamerMSB32::getInputPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:146,1
    - Dst: BitStreamerMSB32::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:147,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - ' image'
    - bs
    - bits
    argTypes:
    - RawImage
    - ByteStream
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 148
    functionName: rawspeed::SamsungV2Decompressor::SamsungV2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - static_cast<OptFlags>
    - implicit_cast<uint16_t>
    - BitStreamerMSB32::getBits
    - BitStreamerMSB32::getInputPosition
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - BitStreamerMSB32::getRemainingSize
    - ByteStream::peekRemainingBuffer
    - ByteStream::getSubStream
    - ByteStream::check
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void SamsungV2Decompressor::SamsungV2Decompressor(const RawImage&
      image,\n                                             ByteStream bs, unsigned
      bits)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:160,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:167,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:168,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:173,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:174,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:175,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:178,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:184,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:198,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:222,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:227,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:227,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:229,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - ' pump'
    - row
    - col
    argTypes:
    - BitStreamerMSB32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 234
    functionName: rawspeed::SamsungV2Decompressor::prepareBaselineValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - img
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - getBits
    linkageType: ''
    returnType: std::array<uint16_t, 16>
    signature: "std::array<uint16_t, 16> SamsungV2Decompressor::prepareBaselineValues(BitStreamerMSB32&
      pump, int row,\n                                             int col)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:238,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:246,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:252,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:262,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:266,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:269,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:276,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ' pump'
    - row
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts:
    - condition: (flags[i] <= 3)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    - condition: (diffBits[i] <= 15 && "So any difference fits within uint16_t")
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 281
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 281
    functionName: rawspeed::SamsungV2Decompressor::decodeDiffLengths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - assert
    - __builtin_unreachable
    - getBits
    linkageType: ''
    returnType: std::array<uint32_t, 4>
    signature: std::array<uint32_t, 4> SamsungV2Decompressor::decodeDiffLengths(BitStreamerMSB32&
      pump, int row)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV2Decompressor::decodeDiffLengths
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:286,1
    - Dst: rawspeed::SamsungV2Decompressor::getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' pump'
    - row
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 318
    functionName: rawspeed::SamsungV2Decompressor::decodeDifferences
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SamsungV2Decompressor::decodeDiffLengths
    - rawspeed::SamsungV2Decompressor::getDiff
    linkageType: ''
    returnType: std::array<int, 16>
    signature: std::array<int, 16> SamsungV2Decompressor::decodeDifferences(BitStreamerMSB32&
      pump, int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:322,1
    - Dst: rawspeed::SamsungV2Decompressor::prepareBaselineValues
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:325,1
    - Dst: rawspeed::SamsungV2Decompressor::decodeDifferences
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:328,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:332,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' pump'
    - row
    - col
    argTypes:
    - BitStreamerMSB32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: rawspeed::SamsungV2Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SamsungV2Decompressor::prepareBaselineValues
    - clampBits
    - getU16DataAsUncroppedArray2DRef
    - out
    - rawspeed::SamsungV2Decompressor::decodeDifferences
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::processBlock(BitStreamerMSB32& pump, int
      row, int col)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:337,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:338,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:340,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:350,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:351,1
    - Dst: rawspeed::SamsungV2Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:353,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:355,1
    - Dst: BitStreamerMSB32::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: rawspeed::SamsungV2Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - skipBytes
    - rawspeed::SamsungV2Decompressor::processBlock
    - BitStreamerMSB32::getStreamPosition
    - invariant
    - peekRemainingBuffer
    - getPosition
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::decompressRow(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV2Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: rawspeed::SamsungV2Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SamsungV2Decompressor::decompressRow
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::decompress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:63,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:64,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
    - static_cast<SamsungV2Decompressor::OptFlags>
    linkageType: ''
    returnType: SamsungV2Decompressor::OptFlags
    signature: "SamsungV2Decompressor::OptFlags operator|(SamsungV2Decompressor::OptFlags
      lhs,\n          SamsungV2Decompressor::OptFlags rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:73,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:74,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SamsungV2Decompressor::OptFlags>
    - "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
    linkageType: ''
    returnType: bool
    signature: "bool operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:63,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:64,1
    - Dst: static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<SamsungV2Decompressor::OptFlags>>
    - static_cast<SamsungV2Decompressor::OptFlags>
    linkageType: ''
    returnType: SamsungV2Decompressor::OptFlags
    signature: "SamsungV2Decompressor::OptFlags operator|(SamsungV2Decompressor::OptFlags
      lhs,\n          SamsungV2Decompressor::OptFlags rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SamsungV2Decompressor::OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:73,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:74,1
    - Dst: "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - SamsungV2Decompressor::OptFlags
    - SamsungV2Decompressor::OptFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SamsungV2Decompressor::OptFlags>
    - "static_cast<\n                 std::underlying_type_t<SamsungV2Decompressor::OptFlags>>"
    linkageType: ''
    returnType: bool
    signature: "bool operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
      rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:86,1
    - Dst: implicit_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    - Dst: signExtend
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' pump'
    - len
    argTypes:
    - BitStreamerMSB32
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: rawspeed::SamsungV2Decompressor::getDiff
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - signExtend
    - implicit_cast<int16_t>
    - invariant
    - getBits
    linkageType: ''
    returnType: int16_t
    signature: int16_t SamsungV2Decompressor::getDiff(BitStreamerMSB32& pump, uint32_t
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:93,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:93,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:94,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:102,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:106,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:108,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:112,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:113,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:116,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:117,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:118,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:119,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:120,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:121,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:122,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:126,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:128,1
    - Dst: static_cast<OptFlags>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:129,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:131,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:132,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:133,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:134,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:135,1
    - Dst: BitStreamerMSB32::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:135,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:137,1
    - Dst: BitStreamerMSB32::getInputPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:141,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:144,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:146,1
    - Dst: BitStreamerMSB32::getInputPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:146,1
    - Dst: BitStreamerMSB32::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:147,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - ' image'
    - bs
    - bits
    argTypes:
    - RawImage
    - ByteStream
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 148
    functionName: rawspeed::SamsungV2Decompressor::SamsungV2Decompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - getBpp
    - static_cast<OptFlags>
    - implicit_cast<uint16_t>
    - BitStreamerMSB32::getBits
    - BitStreamerMSB32::getInputPosition
    - ThrowRDE
    - getDataType
    - getCpp
    - invariant
    - BitStreamerMSB32::getRemainingSize
    - ByteStream::peekRemainingBuffer
    - ByteStream::getSubStream
    - ByteStream::check
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: "void SamsungV2Decompressor::SamsungV2Decompressor(const RawImage&
      image,\n                                             ByteStream bs, unsigned
      bits)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:160,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:167,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:168,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:173,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:174,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:175,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:178,1
    - Dst: std::array::fill
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:184,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:198,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:222,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:227,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:227,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:229,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - ' pump'
    - row
    - col
    argTypes:
    - BitStreamerMSB32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 234
    functionName: rawspeed::SamsungV2Decompressor::prepareBaselineValues
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - img
    - ThrowRDE
    - std::array::fill
    - getU16DataAsUncroppedArray2DRef
    - getBits
    linkageType: ''
    returnType: std::array<uint16_t, 16>
    signature: "std::array<uint16_t, 16> SamsungV2Decompressor::prepareBaselineValues(BitStreamerMSB32&
      pump, int row,\n                                             int col)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:238,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:246,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:252,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:262,1
    - Dst: getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:266,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:269,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:276,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ' pump'
    - row
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts:
    - condition: (flags[i] <= 3)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    - condition: (diffBits[i] <= 15 && "So any difference fits within uint16_t")
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 281
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 281
    functionName: rawspeed::SamsungV2Decompressor::decodeDiffLengths
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - assert
    - __builtin_unreachable
    - getBits
    linkageType: ''
    returnType: std::array<uint32_t, 4>
    signature: std::array<uint32_t, 4> SamsungV2Decompressor::decodeDiffLengths(BitStreamerMSB32&
      pump, int row)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV2Decompressor::decodeDiffLengths
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:286,1
    - Dst: rawspeed::SamsungV2Decompressor::getDiff
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' pump'
    - row
    argTypes:
    - BitStreamerMSB32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 318
    functionName: rawspeed::SamsungV2Decompressor::decodeDifferences
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::SamsungV2Decompressor::decodeDiffLengths
    - rawspeed::SamsungV2Decompressor::getDiff
    linkageType: ''
    returnType: std::array<int, 16>
    signature: std::array<int, 16> SamsungV2Decompressor::decodeDifferences(BitStreamerMSB32&
      pump, int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:322,1
    - Dst: rawspeed::SamsungV2Decompressor::prepareBaselineValues
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:325,1
    - Dst: rawspeed::SamsungV2Decompressor::decodeDifferences
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:328,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:332,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' pump'
    - row
    - col
    argTypes:
    - BitStreamerMSB32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: rawspeed::SamsungV2Decompressor::processBlock
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::SamsungV2Decompressor::prepareBaselineValues
    - clampBits
    - getU16DataAsUncroppedArray2DRef
    - out
    - rawspeed::SamsungV2Decompressor::decodeDifferences
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::processBlock(BitStreamerMSB32& pump, int
      row, int col)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:337,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:338,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:340,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:350,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:351,1
    - Dst: rawspeed::SamsungV2Decompressor::processBlock
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:353,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:355,1
    - Dst: BitStreamerMSB32::getStreamPosition
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - row
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: rawspeed::SamsungV2Decompressor::decompressRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 1
    functionsReached:
    - skipBytes
    - rawspeed::SamsungV2Decompressor::processBlock
    - BitStreamerMSB32::getStreamPosition
    - invariant
    - peekRemainingBuffer
    - getPosition
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::decompressRow(int row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SamsungV2Decompressor::decompressRow
      Src: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: rawspeed::SamsungV2Decompressor::decompress
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SamsungV2Decompressor::decompressRow
    linkageType: ''
    returnType: void
    signature: void SamsungV2Decompressor::decompress()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:54,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:55,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:56,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:57,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:57,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:68,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - h
    - bytesPerLine
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: rawspeed::UncompressedDecompressor::sanityCheck
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowIOE
    - getRemainSize
    - invariant
    - getSize
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::sanityCheck(const uint32_t* h,\n                                           int
      bytesPerLine) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:78,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:79,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:83,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - w
    - h
    - bpp
    argTypes:
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: rawspeed::UncompressedDecompressor::sanityCheck
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 1
    functionsReached:
    - invariant
    - rawspeed::UncompressedDecompressor::sanityCheck
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::sanityCheck(uint32_t w, const uint32_t*
      h,\n                                           int bpp) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:89,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w
    - skips
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: rawspeed::UncompressedDecompressor::bytesPerLine
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowIOE
    - invariant
    linkageType: ''
    returnType: int
    signature: int UncompressedDecompressor::bytesPerLine(int w, bool skips)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:109,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:110,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:113,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:126,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:136,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:140,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:142,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:146,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:155,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:156,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:159,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:161,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:161,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:163,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:166,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:167,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:168,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 6
    argNames:
    - input_
    - img_
    - ' crop'
    - inputPitchBytes_
    - bitPerPixel_
    - order_
    argTypes:
    - ByteStream
    - RawImage
    - iRectangle2D
    - int
    - int
    - BitOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 169
    functionName: rawspeed::UncompressedDecompressor::UncompressedDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ByteStream::getStream
    - rawspeed::UncompressedDecompressor::sanityCheck
    - implicit_cast<uint32_t>
    - ThrowRDE
    - getDataType
    - getCpp
    - static_cast<uint64_t>
    - invariant
    - static_cast<unsigned>
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::UncompressedDecompressor(\n    ByteStream
      input_, RawImage img_, const iRectangle2D& crop,\n    int inputPitchBytes_,
      int bitPerPixel_, BitOrder order_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:173,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:174,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:176,1
    - Dst: Pump::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:179,1
    - Dst: extendBinaryFloatingPoint<NarrowFpType, ieee_754_2008::Binary32>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:181,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:182,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:182,1
    - Dst: Pump::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rows
    - row
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: rawspeed::UncompressedDecompressor::decodePackedFP
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - Pump::getBits
    - Pump::skipBytes
    - getCpp
    - out
    - peekRemainingBuffer
    - extendBinaryFloatingPoint<NarrowFpType, ieee_754_2008::Binary32>
    - std::bit_cast<float>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decodePackedFP(int rows, int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:190,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:191,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:193,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: Pump::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: Pump::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rows
    - row
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: rawspeed::UncompressedDecompressor::decodePackedInt
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - Pump::getBits
    - Pump::skipBytes
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - out
    - peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decodePackedInt(int rows, int row) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:206,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:212,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:214,1
    - Dst: copyPixels
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:215,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:216,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:217,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:217,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:219,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:219,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:220,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:221,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:221,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:225,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:226,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:230,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:231,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:235,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:236,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:240,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:241,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:244,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:245,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:249,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:249,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:251,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:251,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:253,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:253,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:255,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:256,1
    - Dst: copyPixels
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:257,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:258,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:259,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:259,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:261,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:261,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:262,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:263,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:263,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:266,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:266,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 268
    functionName: rawspeed::UncompressedDecompressor::readUncompressedRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getData
    - getDataType
    - getCpp
    - getBpp
    - getF32DataAsUncroppedArray2DRef
    - rawspeed::UncompressedDecompressor::decodePackedFP
    - implicit_cast<int>
    - reinterpret_cast<std::byte*>
    - implicit_cast<uint32_t>
    - getU16DataAsUncroppedArray2DRef
    - out
    - implicit_cast<Buffer::size_type>
    - ThrowRDE
    - reinterpret_cast<const std::byte*>
    - min
    - getHostEndianness
    - rawspeed::UncompressedDecompressor::decodePackedInt
    - static_cast<uint64_t>
    - copyPixels
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::readUncompressedRaw()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:274,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:276,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:278,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:278,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:283,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:283,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:285,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:285,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:286,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: rawspeed::UncompressedDecompressor::decode8BitRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - reinterpret_cast<std::byte*>
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - out
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode8BitRaw()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::bytesPerLine
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:313,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:315,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:317,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:319,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:319,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:323,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:324,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:330,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:332,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:333,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:336,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:338,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:340,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:348,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 349
    functionName: rawspeed::UncompressedDecompressor::decode12BitRawWithControl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - getRemainSize
    - rawspeed::UncompressedDecompressor::bytesPerLine
    - skipBytes
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - process
    - out
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode12BitRawWithControl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:360,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:362,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:363,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:363,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:365,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:366,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:367,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:368,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:372,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:374,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 378
    functionName: rawspeed::UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - out
    - static_cast<int>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode12BitRawUnpackedLeftAligned()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:54,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:55,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:56,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:57,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:57,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:61,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:68,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - h
    - bytesPerLine
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: rawspeed::UncompressedDecompressor::sanityCheck
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 5
    functionsReached:
    - ThrowIOE
    - getRemainSize
    - invariant
    - getSize
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::sanityCheck(const uint32_t* h,\n                                           int
      bytesPerLine) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:78,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:79,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:83,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - w
    - h
    - bpp
    argTypes:
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: rawspeed::UncompressedDecompressor::sanityCheck
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 6
    functionsReached:
    - invariant
    - rawspeed::UncompressedDecompressor::sanityCheck
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::sanityCheck(uint32_t w, const uint32_t*
      h,\n                                           int bpp) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:89,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w
    - skips
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: rawspeed::UncompressedDecompressor::bytesPerLine
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 1
    functionsReached:
    - ThrowIOE
    - invariant
    linkageType: ''
    returnType: int
    signature: int UncompressedDecompressor::bytesPerLine(int w, bool skips)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:109,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:110,1
    - Dst: hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:113,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:114,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:126,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:136,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:140,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:142,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:146,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:155,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:156,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:159,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:161,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:161,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:163,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:166,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:167,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:168,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 6
    argNames:
    - input_
    - img_
    - ' crop'
    - inputPitchBytes_
    - bitPerPixel_
    - order_
    argTypes:
    - ByteStream
    - RawImage
    - iRectangle2D
    - int
    - int
    - BitOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 169
    functionName: rawspeed::UncompressedDecompressor::UncompressedDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ByteStream::getStream
    - rawspeed::UncompressedDecompressor::sanityCheck
    - implicit_cast<uint32_t>
    - ThrowRDE
    - getDataType
    - getCpp
    - static_cast<uint64_t>
    - invariant
    - static_cast<unsigned>
    - hasPositiveArea
    linkageType: ''
    returnType: void
    signature: "void UncompressedDecompressor::UncompressedDecompressor(\n    ByteStream
      input_, RawImage img_, const iRectangle2D& crop,\n    int inputPitchBytes_,
      int bitPerPixel_, BitOrder order_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:173,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:174,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:176,1
    - Dst: Pump::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:179,1
    - Dst: extendBinaryFloatingPoint<NarrowFpType, ieee_754_2008::Binary32>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:181,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:182,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:182,1
    - Dst: Pump::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rows
    - row
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: rawspeed::UncompressedDecompressor::decodePackedFP
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 1
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - Pump::getBits
    - Pump::skipBytes
    - getCpp
    - out
    - peekRemainingBuffer
    - extendBinaryFloatingPoint<NarrowFpType, ieee_754_2008::Binary32>
    - std::bit_cast<float>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decodePackedFP(int rows, int row) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:190,1
    - Dst: peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:191,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:193,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: Pump::getBits
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:196,1
    - Dst: Pump::skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rows
    - row
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: rawspeed::UncompressedDecompressor::decodePackedInt
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 1
    functionsReached:
    - Pump::getBits
    - Pump::skipBytes
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - out
    - peekRemainingBuffer
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decodePackedInt(int rows, int row) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:206,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:210,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:212,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:214,1
    - Dst: copyPixels
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:215,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:216,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:217,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:217,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:219,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:219,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:220,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:221,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:221,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:225,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:226,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:230,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:231,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:235,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:236,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedFP
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:240,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:241,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:244,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:245,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:249,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:249,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:251,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:251,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:253,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:253,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:255,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:256,1
    - Dst: copyPixels
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:257,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:258,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:259,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:259,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:261,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:261,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:262,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:263,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:263,1
    - Dst: rawspeed::UncompressedDecompressor::decodePackedInt
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:266,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:266,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 268
    functionName: rawspeed::UncompressedDecompressor::readUncompressedRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getData
    - getDataType
    - getCpp
    - getBpp
    - getF32DataAsUncroppedArray2DRef
    - rawspeed::UncompressedDecompressor::decodePackedFP
    - implicit_cast<int>
    - reinterpret_cast<std::byte*>
    - implicit_cast<uint32_t>
    - getU16DataAsUncroppedArray2DRef
    - out
    - implicit_cast<Buffer::size_type>
    - ThrowRDE
    - reinterpret_cast<const std::byte*>
    - min
    - getHostEndianness
    - rawspeed::UncompressedDecompressor::decodePackedInt
    - static_cast<uint64_t>
    - copyPixels
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::readUncompressedRaw()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:274,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:276,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:278,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:278,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:283,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:283,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:285,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:285,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:286,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: rawspeed::UncompressedDecompressor::decode8BitRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - reinterpret_cast<std::byte*>
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - out
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode8BitRaw()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::bytesPerLine
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:313,1
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:315,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:317,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:319,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:319,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:323,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:324,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:330,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:332,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:333,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:336,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:338,1
    - Dst: process
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:340,1
    - Dst: skipBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:348,1
    - Dst: getRemainSize
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 349
    functionName: rawspeed::UncompressedDecompressor::decode12BitRawWithControl
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - getRemainSize
    - rawspeed::UncompressedDecompressor::bytesPerLine
    - skipBytes
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - process
    - out
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode12BitRawWithControl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::UncompressedDecompressor::sanityCheck
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:360,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:362,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:363,1
    - Dst: getData
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:363,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:365,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:366,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:367,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:368,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:372,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:374,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 378
    functionName: rawspeed::UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 0
    functionsReached:
    - in
    - rawspeed::UncompressedDecompressor::sanityCheck
    - getData
    - Array2DRef
    - getU16DataAsUncroppedArray2DRef
    - out
    - static_cast<int>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void UncompressedDecompressor::decode12BitRawUnpackedLeftAligned()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:63,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - bs
    - img
    - predictor
    - bps_
    argTypes:
    - Buffer
    - RawImage
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: rawspeed::DeflateDecompressor::DeflateDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getCpp
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DeflateDecompressor::DeflateDecompressor(Buffer bs, RawImage
      img, int predictor,\n                                         int bps_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - src
    - realTileWidth
    - bytesps
    - factor
    argTypes:
    - Array1DRef<unsigned char>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: rawspeed::decodeDeltaBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeDeltaBytes(Array1DRef<unsigned char> src, int realTileWidth,\n
      \                            int bytesps, int factor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - src
    - realTileWidth
    - bytesps
    - factor
    argTypes:
    - Array1DRef<unsigned char>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: rawspeed::decodeDeltaBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeDeltaBytes(Array1DRef<unsigned char> src, int realTileWidth,\n
      \                            int bytesps, int factor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CroppedArray1DRef<float>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:107,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:110,1
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:119,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:125,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - src
    - realTileWidth
    - out
    argTypes:
    - Array1DRef<const unsigned char>
    - int
    - CroppedArray1DRef<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: rawspeed::decodeFPDeltaRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    - CroppedArray1DRef<float>::size
    - rawspeed::out
    - rawspeed::getBE
    - __builtin_unreachable
    - std::array::data
    - std::bit_cast<float>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeFPDeltaRow(Array1DRef<const unsigned char> src,\n                             int
      realTileWidth, CroppedArray1DRef<float> out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CroppedArray1DRef<float>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:107,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:110,1
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:119,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:125,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - src
    - realTileWidth
    - out
    argTypes:
    - Array1DRef<const unsigned char>
    - int
    - CroppedArray1DRef<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: rawspeed::decodeFPDeltaRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    - CroppedArray1DRef<float>::size
    - rawspeed::out
    - rawspeed::getBE
    - __builtin_unreachable
    - std::array::data
    - std::bit_cast<float>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeFPDeltaRow(Array1DRef<const unsigned char> src,\n                             int
      realTileWidth, CroppedArray1DRef<float> out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:138,1
    - Dst: implicit_cast<uLongf>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:140,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:140,1
    - Dst: std::unique_ptr<unsigned char[]>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:144,1
    - Dst: unsigned char::unsigned char
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:144,1
    - Dst: std::unique_ptr<unsigned char[]>*::get
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:147,1
    - Dst: uncompress
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: std::unique_ptr<unsigned char[]>*::get
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:152,1
    - Dst: zError
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:152,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:155,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:156,1
    - Dst: decodeDeltaBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:160,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary16>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:164,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary24>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:167,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary32>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:170,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - uBuffer
    - maxDim
    - dim
    - 'off'
    argTypes:
    - std::unique_ptr<unsigned char[]>*
    - iPoint2D
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 176
    functionName: rawspeed::DeflateDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - iPoint2D::area
    - decodeFPDeltaRow<ieee_754_2008::Binary16>
    - decodeFPDeltaRow<ieee_754_2008::Binary32>
    - std::unique_ptr<unsigned char[]>
    - begin
    - __builtin_unreachable
    - getSize
    - ThrowRDE
    - implicit_cast<uLongf>
    - zError
    - invariant
    - decodeFPDeltaRow<ieee_754_2008::Binary24>
    - CroppedArray2DRef
    - std::unique_ptr<unsigned char[]>*::get
    - decodeDeltaBytes
    - uncompress
    - unsigned char::unsigned char
    linkageType: ''
    returnType: void
    signature: "void DeflateDecompressor::decode(std::unique_ptr<unsigned char[]>*
      uBuffer,\n                                 iPoint2D maxDim, iPoint2D dim, iPoint2D
      off)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:51,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:63,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - bs
    - img
    - predictor
    - bps_
    argTypes:
    - Buffer
    - RawImage
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: rawspeed::DeflateDecompressor::DeflateDecompressor
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - getCpp
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DeflateDecompressor::DeflateDecompressor(Buffer bs, RawImage
      img, int predictor,\n                                         int bps_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - src
    - realTileWidth
    - bytesps
    - factor
    argTypes:
    - Array1DRef<unsigned char>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: rawspeed::decodeDeltaBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeDeltaBytes(Array1DRef<unsigned char> src, int realTileWidth,\n
      \                            int bytesps, int factor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - src
    - realTileWidth
    - bytesps
    - factor
    argTypes:
    - Array1DRef<unsigned char>
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: rawspeed::decodeDeltaBytes
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned char>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeDeltaBytes(Array1DRef<unsigned char> src, int realTileWidth,\n
      \                            int bytesps, int factor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CroppedArray1DRef<float>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:107,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:110,1
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:119,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:125,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - src
    - realTileWidth
    - out
    argTypes:
    - Array1DRef<const unsigned char>
    - int
    - CroppedArray1DRef<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: rawspeed::decodeFPDeltaRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    - CroppedArray1DRef<float>::size
    - rawspeed::out
    - rawspeed::getBE
    - __builtin_unreachable
    - std::array::data
    - std::bit_cast<float>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeFPDeltaRow(Array1DRef<const unsigned char> src,\n                             int
      realTileWidth, CroppedArray1DRef<float> out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CroppedArray1DRef<float>::size
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:107,1
    - Dst: src
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:110,1
    - Dst: rawspeed::getBE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:112,1
    - Dst: rawspeed::extendBinaryFloatingPoint
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:119,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:125,1
    - Dst: rawspeed::out
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - src
    - realTileWidth
    - out
    argTypes:
    - Array1DRef<const unsigned char>
    - int
    - CroppedArray1DRef<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: rawspeed::decodeFPDeltaRow
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::extendBinaryFloatingPoint
    - CroppedArray1DRef<float>::size
    - rawspeed::out
    - rawspeed::getBE
    - __builtin_unreachable
    - std::array::data
    - std::bit_cast<float>
    - src
    linkageType: ''
    returnType: void
    signature: "void decodeFPDeltaRow(Array1DRef<const unsigned char> src,\n                             int
      realTileWidth, CroppedArray1DRef<float> out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:138,1
    - Dst: implicit_cast<uLongf>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:140,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:140,1
    - Dst: std::unique_ptr<unsigned char[]>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:144,1
    - Dst: unsigned char::unsigned char
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:144,1
    - Dst: std::unique_ptr<unsigned char[]>*::get
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:147,1
    - Dst: uncompress
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: std::unique_ptr<unsigned char[]>*::get
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:150,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:152,1
    - Dst: zError
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:152,1
    - Dst: CroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:155,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:156,1
    - Dst: decodeDeltaBytes
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:160,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary16>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:164,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary24>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:167,1
    - Dst: decodeFPDeltaRow<ieee_754_2008::Binary32>
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:170,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - uBuffer
    - maxDim
    - dim
    - 'off'
    argTypes:
    - std::unique_ptr<unsigned char[]>*
    - iPoint2D
    - iPoint2D
    - iPoint2D
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 176
    functionName: rawspeed::DeflateDecompressor::decode
    functionSourceFile: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    functionUses: 0
    functionsReached:
    - getF32DataAsUncroppedArray2DRef
    - iPoint2D::area
    - decodeFPDeltaRow<ieee_754_2008::Binary16>
    - decodeFPDeltaRow<ieee_754_2008::Binary32>
    - std::unique_ptr<unsigned char[]>
    - begin
    - __builtin_unreachable
    - getSize
    - ThrowRDE
    - implicit_cast<uLongf>
    - zError
    - invariant
    - decodeFPDeltaRow<ieee_754_2008::Binary24>
    - CroppedArray2DRef
    - std::unique_ptr<unsigned char[]>*::get
    - decodeDeltaBytes
    - uncompress
    - unsigned char::unsigned char
    linkageType: ''
    returnType: void
    signature: "void DeflateDecompressor::decode(std::unique_ptr<unsigned char[]>*
      uBuffer,\n                                 iPoint2D maxDim, iPoint2D dim, iPoint2D
      off)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:64,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:64,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: rawspeed::CrwDecoder::isCRW
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: bool
    signature: bool CrwDecoder::isCRW(Buffer input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - std::unique_ptr<const CiffIFD>
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: rawspeed::CrwDecoder::CrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::CrwDecoder(std::unique_ptr<const CiffIFD> rootIFD,
      Buffer file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:74,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:80,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:82,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:83,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:84,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:89,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:94,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:96,1
    - Dst: CiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:97,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:99,1
    - Dst: CiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:108,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:109,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:113,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:116,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:119,1
    - Dst: CrwDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (decTable != nullptr)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    - condition: (sensorInfo != nullptr)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: rawspeed::CrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - ByteStream::getStream
    - getEntry
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - getEntryRecursive
    - CiffEntry*::getU16
    - CiffEntry*::getU32
    - invariant
    - createData
    - ByteStream::peekRemainingBuffer
    - iPoint2D
    - CiffEntry*::getData
    - CrwDecompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage CrwDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:126,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:128,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:130,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:132,1
    - Dst: rawspeed::CrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: rawspeed::CrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CrwDecoder::checkCameraSupported
    - getIFDsWithTag
    - vector::size
    - getEntry
    - vector::empty
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:142,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:148,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:150,1
    - Dst: copysignf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:152,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:152,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: rawspeed::RAWSPEED_READNONE::canonEv
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<int64_t>
    - abs
    - copysignf
    - implicit_cast<float>
    linkageType: ''
    returnType: float
    signature: float RAWSPEED_READNONE CrwDecoder::canonEv(const int64_t in)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:158,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:158,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:160,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:161,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:162,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:164,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:166,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:171,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:172,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:175,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:176,1
    - Dst: expf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: canonEv
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: logf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:184,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:184,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:186,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:186,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:194,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:198,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:200,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:202,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:207,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:210,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:215,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:215,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:216,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:216,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:217,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:217,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:221,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:221,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:223,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:223,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:224,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:227,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:227,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:228,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:228,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:229,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:229,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:230,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:230,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:232,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:235,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:235,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:236,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:236,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:237,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:237,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:239,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:239,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:243,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:244,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:246,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:247,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:249,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:252,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:254,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:256,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:257,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:258,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:262,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:262,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:266,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 267
    functionName: rawspeed::CrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - hasEntryRecursive
    - vector::size
    - setError
    - getEntryRecursive
    - get
    - iPoint2D
    - static_cast<float>
    - contains
    - getIFDsWithTag
    - std::string_view
    - implicit_cast<int>
    - getEntry
    - canonEv
    - ThrowRDE
    - cfa::setCFA
    - expf
    - logf
    - what
    - setMetaData
    - vector::empty
    - static_cast<CiffTag>
    - CiffEntry*::getU16
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:64,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:64,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: rawspeed::CrwDecoder::isCRW
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: bool
    signature: bool CrwDecoder::isCRW(Buffer input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - std::unique_ptr<const CiffIFD>
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: rawspeed::CrwDecoder::CrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::CrwDecoder(std::unique_ptr<const CiffIFD> rootIFD,
      Buffer file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:74,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:80,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:82,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:83,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:84,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:85,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:89,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:94,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:96,1
    - Dst: CiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:97,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:99,1
    - Dst: CiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:101,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:108,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:109,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:113,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:116,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:119,1
    - Dst: CrwDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (decTable != nullptr)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    - condition: (sensorInfo != nullptr)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: rawspeed::CrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - ByteStream::getStream
    - getEntry
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - getEntryRecursive
    - CiffEntry*::getU16
    - CiffEntry*::getU32
    - invariant
    - createData
    - ByteStream::peekRemainingBuffer
    - iPoint2D
    - CiffEntry*::getData
    - CrwDecompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage CrwDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:126,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:127,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:128,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:130,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:132,1
    - Dst: rawspeed::CrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: rawspeed::CrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::CrwDecoder::checkCameraSupported
    - getIFDsWithTag
    - vector::size
    - getEntry
    - vector::empty
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:142,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:148,1
    - Dst: implicit_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:150,1
    - Dst: copysignf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:152,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:152,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: rawspeed::RAWSPEED_READNONE::canonEv
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<int64_t>
    - abs
    - copysignf
    - implicit_cast<float>
    linkageType: ''
    returnType: float
    signature: float RAWSPEED_READNONE CrwDecoder::canonEv(const int64_t in)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:158,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:158,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:160,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:161,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:162,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:164,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:165,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:166,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:171,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:172,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:175,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:176,1
    - Dst: expf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: canonEv
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: static_cast<int64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: logf
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:177,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:184,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:184,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:186,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:186,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:191,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:194,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:198,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:200,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:202,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:207,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:210,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:215,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:215,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:216,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:216,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:217,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:217,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:221,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:221,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:223,1
    - Dst: static_cast<CiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:223,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:224,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:227,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:227,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:228,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:228,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:229,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:229,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:230,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:230,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:232,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:235,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:235,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:236,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:236,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:237,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:237,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:239,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:239,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:243,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:244,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:246,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:247,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:249,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:252,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:254,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:256,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:257,1
    - Dst: CiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:258,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:262,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:262,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp:266,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 267
    functionName: rawspeed::CrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - hasEntryRecursive
    - vector::size
    - setError
    - getEntryRecursive
    - get
    - iPoint2D
    - static_cast<float>
    - contains
    - getIFDsWithTag
    - std::string_view
    - implicit_cast<int>
    - getEntry
    - canonEv
    - ThrowRDE
    - cfa::setCFA
    - expf
    - logf
    - what
    - setMetaData
    - vector::empty
    - static_cast<CiffTag>
    - CiffEntry*::getU16
    linkageType: ''
    returnType: void
    signature: void CrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: rawspeed::PefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool PefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:61,1
    - Dst: decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:64,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:69,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:71,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:73,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:77,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:79,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:82,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:89,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:97,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:98,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:100,1
    - Dst: getRootIFD
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:103,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:103,1
    - Dst: getRootIFD
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:106,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:108,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:110,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:114,1
    - Dst: PentaxDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 118
    functionName: rawspeed::PefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - PentaxDecompressor::decompress
    - getIFDWithTag
    - getRootIFD
    - writeLog
    - TiffEntry*::getU32
    - ThrowRDE
    - getSubView
    - decodeUncompressed
    - auto*::getEntry
    - TiffEntry*::getData
    - createData
    - static_cast<TiffTag>
    - iPoint2D
    - auto*::hasEntry
    linkageType: ''
    returnType: RawImage
    signature: RawImage PefDecoder::decodeRawInternal()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:122,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:122,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:125,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:126,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:128,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:131,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:131,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:133,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:133,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:136,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:136,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:137,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:139,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:139,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:144,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:144,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:146,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:146,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:149,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:149,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:150,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:150,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:151,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 155
    functionName: rawspeed::PefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - blackLevelSeparateStorage::data
    - Array2DRef
    - TiffEntry*::getU32
    - getEntryRecursive
    - implicit_cast<float>
    - cfa::setCFA
    - static_cast<TiffTag>
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - setMetaData
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void PefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: rawspeed::PefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool PefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:61,1
    - Dst: decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:64,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:69,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:71,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:73,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:77,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:79,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:82,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:89,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:97,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:98,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:100,1
    - Dst: getRootIFD
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:103,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:103,1
    - Dst: getRootIFD
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:106,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:108,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:110,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:114,1
    - Dst: PentaxDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 118
    functionName: rawspeed::PefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - PentaxDecompressor::decompress
    - getIFDWithTag
    - getRootIFD
    - writeLog
    - TiffEntry*::getU32
    - ThrowRDE
    - getSubView
    - decodeUncompressed
    - auto*::getEntry
    - TiffEntry*::getData
    - createData
    - static_cast<TiffTag>
    - iPoint2D
    - auto*::hasEntry
    linkageType: ''
    returnType: RawImage
    signature: RawImage PefDecoder::decodeRawInternal()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:122,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:122,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:125,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:126,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:128,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:131,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:131,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:133,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:133,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:136,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:136,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:137,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:139,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:139,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:144,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:144,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:146,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:146,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:149,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:149,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:150,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:150,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:151,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 155
    functionName: rawspeed::PefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - blackLevelSeparateStorage::data
    - Array2DRef
    - TiffEntry*::getU32
    - getEntryRecursive
    - implicit_cast<float>
    - cfa::setCFA
    - static_cast<TiffTag>
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - setMetaData
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void PefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:56,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:56,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: rawspeed::RafDecoder::isRAF
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: bool
    signature: bool RafDecoder::isRAF(Buffer input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::RafDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool RafDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:71,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:75,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:76,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:77,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:78,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:79,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:80,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:87,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:89,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:90,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:91,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:98,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:100,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:103,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:106,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:110,1
    - Dst: FujiDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:126,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:126,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:128,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:134,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:137,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:140,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:147,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:149,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:152,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:155,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:159,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:159,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:161,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:162,1
    - Dst: ByteStream::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:163,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:164,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:167,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:167,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:169,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:170,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:173,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:174,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:176,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:177,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:179,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:181,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:182,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!isCompressed())
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    constantsTouched: []
    func_position:
      end: 187
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 187
    functionName: rawspeed::RafDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getByte
    - auto*::getEntry
    - iPoint2D
    - TiffEntry*::getRootIfdData
    - contains
    - rawspeed::RafDecoder::isCompressed
    - TiffEntry*::getU16
    - getIFDWithTag
    - createData
    - iRectangle2D
    - auto*::hasEntry
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - ByteStream::getByteOrder
    - ByteStream::getSubStream
    - getHostEndianness
    - UncompressedDecompressor::readUncompressedRaw
    - FujiDecompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage RafDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RafDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:190,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:191,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:193,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:196,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:197,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    - Dst: auto::make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    - Dst: auto::model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: rawspeed::RafDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - rawspeed::RafDecoder::isCompressed
    - auto::make::c_str
    - auto::model::c_str
    - ThrowRDE
    - rawspeed::RafDecoder::checkCameraSupported
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: void
    signature: void RafDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RafDecoder::getDefaultCrop
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:214,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:218,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:230,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:247,1
    - Dst: RawImage::clearArea
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:253,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:254,1
    - Dst: dstImg
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:268,1
    - Dst: srcImg
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:268,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:270,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:275,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 1
    argNames:
    - cam
    argTypes:
    - Camera*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 277
    functionName: rawspeed::RafDecoder::applyCorrections
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - rawspeed::RawImage::create
    - srcImg
    - subFrame
    - RawImage::getU16DataAsUncroppedArray2DRef
    - dstImg
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - RawImage::clearArea
    - iRectangle2D
    - iPoint2D
    - rawspeed::RafDecoder::getDefaultCrop
    linkageType: ''
    returnType: void
    signature: void RafDecoder::applyCorrections(const Camera* cam)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:281,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:282,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:287,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:289,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:291,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:292,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:297,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:298,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:300,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:302,1
    - Dst: rawspeed::RafDecoder::applyCorrections
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:306,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:309,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:311,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:314,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:314,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:315,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:317,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:317,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:320,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:320,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:321,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:327,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:328,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:337,1
    - Dst: Camera*::getSensorInfo
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:343,1
    - Dst: Camera*::color_matrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:351,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:360,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:362,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:365,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:366,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:367,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:370,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:371,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:374,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:375,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:376,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts:
    - condition: (cam != nullptr)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: rawspeed::RafDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - Camera*::color_matrix::empty
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - rawspeed::RafDecoder::applyCorrections
    - blackLevelSeparateStorage::data
    - implicit_cast<int>
    - Array2DRef
    - TiffEntry*::getU32
    - ThrowRDE
    - getEntryRecursive
    - assert
    - Camera*::getSensorInfo
    - CameraMetaData*::getCamera
    - blackLevelSeparate::getAsArray1DRef
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RafDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:383,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:387,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:388,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:389,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:390,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:391,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:392,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:393,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:395,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:399,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:402,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:403,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 413
    functionName: rawspeed::RafDecoder::isCompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - TiffEntry*::getU16
    - getIFDWithTag
    - ThrowRDE
    - auto*::getEntry
    - auto*::hasEntry
    linkageType: ''
    returnType: int
    signature: int RafDecoder::isCompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:418,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:419,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:420,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:421,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:422,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:423,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:424,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:425,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:426,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:429,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:431,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: rawspeed::RafDecoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 1
    functionsReached:
    - getIFDWithTag
    - static_cast<unsigned int>
    - ThrowRDE
    - auto*::getEntry
    - auto*::getU16
    - auto*::hasEntry
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D RafDecoder::getDefaultCrop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:56,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:56,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: rawspeed::RafDecoder::isRAF
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: bool
    signature: bool RafDecoder::isRAF(Buffer input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::RafDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool RafDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:71,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:75,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:76,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:77,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:78,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:79,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:80,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:81,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:87,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:89,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:90,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:91,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:95,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:98,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:100,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:101,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:103,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:106,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:110,1
    - Dst: FujiDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:112,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:126,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:126,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:128,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:134,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:137,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:140,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:143,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:147,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:149,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:152,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:155,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:159,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:159,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:161,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:162,1
    - Dst: ByteStream::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:163,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:164,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:167,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:167,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:169,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:170,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:173,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:174,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:176,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:177,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:179,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:181,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:182,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!isCompressed())
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    constantsTouched: []
    func_position:
      end: 187
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 187
    functionName: rawspeed::RafDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getByte
    - auto*::getEntry
    - iPoint2D
    - TiffEntry*::getRootIfdData
    - contains
    - rawspeed::RafDecoder::isCompressed
    - TiffEntry*::getU16
    - getIFDWithTag
    - createData
    - iRectangle2D
    - auto*::hasEntry
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - ByteStream::getByteOrder
    - ByteStream::getSubStream
    - getHostEndianness
    - UncompressedDecompressor::readUncompressedRaw
    - FujiDecompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage RafDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RafDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:190,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:190,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:191,1
    - Dst: rawspeed::RafDecoder::isCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:193,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:196,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:197,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    - Dst: auto::make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    - Dst: auto::model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: rawspeed::RafDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - rawspeed::RafDecoder::isCompressed
    - auto::make::c_str
    - auto::model::c_str
    - ThrowRDE
    - rawspeed::RafDecoder::checkCameraSupported
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: void
    signature: void RafDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RafDecoder::getDefaultCrop
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:214,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:218,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:230,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:247,1
    - Dst: RawImage::clearArea
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:248,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:253,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:254,1
    - Dst: dstImg
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:268,1
    - Dst: srcImg
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:268,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:270,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:275,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 1
    argNames:
    - cam
    argTypes:
    - Camera*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 277
    functionName: rawspeed::RafDecoder::applyCorrections
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - rawspeed::RawImage::create
    - srcImg
    - subFrame
    - RawImage::getU16DataAsUncroppedArray2DRef
    - dstImg
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - RawImage::clearArea
    - iRectangle2D
    - iPoint2D
    - rawspeed::RafDecoder::getDefaultCrop
    linkageType: ''
    returnType: void
    signature: void RafDecoder::applyCorrections(const Camera* cam)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:281,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:282,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:287,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:289,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:291,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:292,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:297,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:298,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:300,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:302,1
    - Dst: rawspeed::RafDecoder::applyCorrections
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:306,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:309,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:311,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:314,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:314,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:315,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:317,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:317,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:320,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:320,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:321,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:327,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:328,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:337,1
    - Dst: Camera*::getSensorInfo
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:343,1
    - Dst: Camera*::color_matrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:351,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:360,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:362,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:365,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:366,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:367,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:370,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:371,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:374,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:375,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:376,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts:
    - condition: (cam != nullptr)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: rawspeed::RafDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - Camera*::color_matrix::empty
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - rawspeed::RafDecoder::applyCorrections
    - blackLevelSeparateStorage::data
    - implicit_cast<int>
    - Array2DRef
    - TiffEntry*::getU32
    - ThrowRDE
    - getEntryRecursive
    - assert
    - Camera*::getSensorInfo
    - CameraMetaData*::getCamera
    - blackLevelSeparate::getAsArray1DRef
    - blackLevelSeparate1D
    linkageType: ''
    returnType: void
    signature: void RafDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:383,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:387,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:388,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:389,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:390,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:391,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:392,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:393,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:395,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:399,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:402,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:403,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 413
    functionName: rawspeed::RafDecoder::isCompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 4
    functionsReached:
    - TiffEntry*::getU16
    - getIFDWithTag
    - ThrowRDE
    - auto*::getEntry
    - auto*::hasEntry
    linkageType: ''
    returnType: int
    signature: int RafDecoder::isCompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:418,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:419,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:420,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:421,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:422,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:423,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:424,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:425,1
    - Dst: auto*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:426,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:429,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:431,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: rawspeed::RafDecoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
    functionUses: 2
    functionsReached:
    - getIFDWithTag
    - static_cast<unsigned int>
    - ThrowRDE
    - auto*::getEntry
    - auto*::getU16
    - auto*::hasEntry
    linkageType: ''
    returnType: iRectangle2D
    signature: iRectangle2D RafDecoder::getDefaultCrop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::NakedDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::NakedDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rawspeed::AbstractTiffDecoder::AbstractTiffDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractTiffDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::AbstractTiffDecoder::getRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * getRootIFD() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meta
    - ' id'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - TiffID
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed::AbstractTiffDecoder::checkCameraSupported
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::RawDecoder::checkCameraSupported
    linkageType: ''
    returnType: bool
    signature: "bool checkCameraSupported(const CameraMetaData* meta, const TiffID&
      id,\n                            const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - meta
    - ' id'
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - TiffID
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractTiffDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::AbstractTiffDecoder::setMetaData
    linkageType: ''
    returnType: void
    signature: "void setMetaData(const CameraMetaData* meta, const TiffID& id,\n                   const
      std::string& mode, int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:62,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meta
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractTiffDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 2
    functionsReached:
    - rawspeed::AbstractTiffDecoder::setMetaData
    - getID
    linkageType: ''
    returnType: void
    signature: "void setMetaData(const CameraMetaData* meta, const std::string& mode,\n
      \                  int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:66,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::AbstractTiffDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractTiffDecoder::checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void checkSupportInternal(const CameraMetaData* meta) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rawspeed::AbstractTiffDecoder::AbstractTiffDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractTiffDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::AbstractTiffDecoder::getRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * getRootIFD() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meta
    - ' id'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - TiffID
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rawspeed::AbstractTiffDecoder::checkCameraSupported
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 1
    functionsReached:
    - rawspeed::RawDecoder::checkCameraSupported
    linkageType: ''
    returnType: bool
    signature: "bool checkCameraSupported(const CameraMetaData* meta, const TiffID&
      id,\n                            const std::string& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - meta
    - ' id'
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - TiffID
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rawspeed::AbstractTiffDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 3
    functionsReached:
    - rawspeed::AbstractTiffDecoder::setMetaData
    linkageType: ''
    returnType: void
    signature: "void setMetaData(const CameraMetaData* meta, const TiffID& id,\n                   const
      std::string& mode, int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:62,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meta
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: rawspeed::AbstractTiffDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 4
    functionsReached:
    - rawspeed::AbstractTiffDecoder::setMetaData
    - getID
    linkageType: ''
    returnType: void
    signature: "void setMetaData(const CameraMetaData* meta, const std::string& mode,\n
      \                  int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractTiffDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:66,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::AbstractTiffDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractTiffDecoder::checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void checkSupportInternal(const CameraMetaData* meta) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::RafDecoder::RafDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RafDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: rawspeed::RafDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::RafDecoder::RafDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RafDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: rawspeed::RafDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: rawspeed::StiDecoder::StiDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void StiDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::StiDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: rawspeed::StiDecoder::StiDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void StiDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::StiDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::RawDecoder::RawDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawDecoder::RawDecoder(Buffer file)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:58,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:59,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:60,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:61,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:62,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:66,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:76,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:87,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:96,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:100,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:109,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:110,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:112,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:116,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:119,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:119,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:121,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:124,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:130,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:134,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:139,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:140,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - rawIFD
    - order
    argTypes:
    - TiffIFD*
    - BitOrder
    assertStmts:
    - condition: (slices.size() == counts->count)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    - condition: (height <= offY)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 144
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 144
    functionName: rawspeed::RawDecoder::decodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - vector::size
    - getSubView
    - roundUpDivisionSafe
    - iPoint2D
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - createData
    - iRectangle2D
    - static_cast<uint32_t>
    - vector::reserve
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - isValid
    - ByteStream
    - vector::empty
    - static_cast<uint64_t>
    - UncompressedDecompressor::readUncompressedRaw
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: "void RawDecoder::decodeUncompressed(const TiffIFD* rawIFD,\n                                    BitOrder
      order) const"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:151,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:161,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:189,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:194,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: rawspeed::RawDecoder::handleCameraSupport
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - CameraMetaData*::getCamera
    - c_str
    - writeLog
    linkageType: ''
    returnType: bool
    signature: "bool RawDecoder::handleCameraSupport(const CameraMetaData* meta,\n
      \                                    const std::string& make,\n                                     const
      std::string& model,\n                                     const std::string&
      mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::handleCameraSupport
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:211,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:214,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:215,1
    - Dst: getDecoderVersion
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:217,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    assertStmts:
    - condition: (cam)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: rawspeed::RawDecoder::checkCameraSupported
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::RawDecoder::handleCameraSupport
    - getDecoderVersion
    - ThrowRDE
    - assert
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: bool
    signature: "bool RawDecoder::checkCameraSupported(const CameraMetaData* meta,\n
      \                                     const std::string& make,\n                                      const
      std::string& model,\n                                      const std::string&
      mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::handleCameraSupport
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:230,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:233,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:234,1
    - Dst: Camera*::cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:238,1
    - Dst: Camera*::color_matrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:241,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:263,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:263,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:265,1
    - Dst: rawspeed::RawDecoder::getDefaultCrop
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:265,1
    - Dst: Camera*::getSensorInfo
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:270,1
    - Dst: blackAreas::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:273,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:273,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:274,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:274,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:276,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:276,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:278,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:278,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:280,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:282,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:285,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:285,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:287,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:287,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:289,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:290,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:291,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:301,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:301,1
    - Dst: std::string::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:302,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:303,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:304,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:305,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:308,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:310,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:310,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    - int
    assertStmts:
    - condition: (cam)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 314
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 314
    functionName: rawspeed::RawDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - stoi
    - Camera*::color_matrix::empty
    - cfa::getSize
    - vector::size
    - setError
    - blackLevelSeparateStorage::data
    - getCpp
    - get
    - blackLevelSeparate::getAsArray1DRef
    - CameraSensorInfo*::mBlackLevelSeparate::size
    - implicit_cast<int>
    - iRectangle2D
    - std::string
    - splitString
    - blackAreas::empty
    - rawspeed::RawDecoder::handleCameraSupport
    - subFrame
    - std::string::empty
    - Camera*::cfa::getSize
    - assert
    - Camera*::getSensorInfo
    - CameraMetaData*::getCamera
    - blackLevelSeparate1D
    - Array2DRef
    - rawspeed::RawDecoder::getDefaultCrop
    - CameraSensorInfo*::mBlackLevelSeparate::empty
    linkageType: ''
    returnType: void
    signature: "void RawDecoder::setMetaData(const CameraMetaData* meta,\n                             const
      std::string& make, const std::string& model,\n                             const
      std::string& mode, int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: rawspeed::RawDecoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: rawspeed::iRectangle2D
    signature: rawspeed::iRectangle2D RawDecoder::getDefaultCrop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decodeRawInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:322,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:323,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:323,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:326,1
    - Dst: RawImage::fixBadPixels
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:328,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:329,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:329,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:334,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:334,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:336,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:336,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:338,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 340
    functionName: rawspeed::RawDecoder::decodeRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - decodeRawInternal
    - RawImage::fixBadPixels
    - rawspeed::MSan::CheckMemIsInitialized
    - ThrowRDE
    - RawImage::getByteDataAsUncroppedArray2DRef
    - get
    - what
    linkageType: ''
    returnType: rawspeed::RawImage
    signature: rawspeed::RawImage RawDecoder::decodeRaw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decodeMetaDataInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:344,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:346,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:346,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:348,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:350,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: rawspeed::RawDecoder::decodeMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - decodeMetaDataInternal
    - what
    linkageType: ''
    returnType: void
    signature: void RawDecoder::decodeMetaData(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkSupportInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:356,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:358,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:358,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:360,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:360,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:362,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: rawspeed::RawDecoder::checkSupport
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - checkSupportInternal
    - what
    linkageType: ''
    returnType: void
    signature: void RawDecoder::checkSupport(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::RawDecoder::RawDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawDecoder::RawDecoder(Buffer file)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:58,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:59,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:60,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:61,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:62,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:66,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:76,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:87,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:96,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:100,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:109,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:110,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:112,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:115,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:116,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:118,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:119,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:119,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:121,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:124,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:130,1
    - Dst: static_cast<uint64_t>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:134,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:137,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:139,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:140,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - rawIFD
    - order
    argTypes:
    - TiffIFD*
    - BitOrder
    assertStmts:
    - condition: (slices.size() == counts->count)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    - condition: (height <= offY)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 144
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 144
    functionName: rawspeed::RawDecoder::decodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - vector::size
    - getSubView
    - roundUpDivisionSafe
    - iPoint2D
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - createData
    - iRectangle2D
    - static_cast<uint32_t>
    - vector::reserve
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - isValid
    - ByteStream
    - vector::empty
    - static_cast<uint64_t>
    - UncompressedDecompressor::readUncompressedRaw
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: "void RawDecoder::decodeUncompressed(const TiffIFD* rawIFD,\n                                    BitOrder
      order) const"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:151,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:161,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:164,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:170,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:174,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:189,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:194,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: rawspeed::RawDecoder::handleCameraSupport
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 2
    functionsReached:
    - ThrowRDE
    - CameraMetaData*::getCamera
    - c_str
    - writeLog
    linkageType: ''
    returnType: bool
    signature: "bool RawDecoder::handleCameraSupport(const CameraMetaData* meta,\n
      \                                    const std::string& make,\n                                     const
      std::string& model,\n                                     const std::string&
      mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::handleCameraSupport
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:211,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:214,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:215,1
    - Dst: getDecoderVersion
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:217,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    assertStmts:
    - condition: (cam)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: rawspeed::RawDecoder::checkCameraSupported
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::RawDecoder::handleCameraSupport
    - getDecoderVersion
    - ThrowRDE
    - assert
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: bool
    signature: "bool RawDecoder::checkCameraSupported(const CameraMetaData* meta,\n
      \                                     const std::string& make,\n                                      const
      std::string& model,\n                                      const std::string&
      mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::handleCameraSupport
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:230,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:233,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:234,1
    - Dst: Camera*::cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:238,1
    - Dst: Camera*::color_matrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:241,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:263,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:263,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:265,1
    - Dst: rawspeed::RawDecoder::getDefaultCrop
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:265,1
    - Dst: Camera*::getSensorInfo
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:270,1
    - Dst: blackAreas::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:273,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:273,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:274,1
    - Dst: cfa::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:274,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:276,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:276,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:278,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:278,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:280,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:282,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:285,1
    - Dst: CameraSensorInfo*::mBlackLevelSeparate::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:285,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:287,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:287,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:289,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:290,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:291,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:301,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:301,1
    - Dst: std::string::empty
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:302,1
    - Dst: splitString
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:303,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:304,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:305,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:308,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:310,1
    - Dst: stoi
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:310,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - meta
    - ' make'
    - ' model'
    - ' mode'
    - iso_speed
    argTypes:
    - CameraMetaData*
    - std::string
    - std::string
    - std::string
    - int
    assertStmts:
    - condition: (cam)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    constantsTouched: []
    func_position:
      end: 314
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 314
    functionName: rawspeed::RawDecoder::setMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - stoi
    - Camera*::color_matrix::empty
    - cfa::getSize
    - vector::size
    - setError
    - blackLevelSeparateStorage::data
    - getCpp
    - get
    - blackLevelSeparate::getAsArray1DRef
    - CameraSensorInfo*::mBlackLevelSeparate::size
    - implicit_cast<int>
    - iRectangle2D
    - std::string
    - splitString
    - blackAreas::empty
    - rawspeed::RawDecoder::handleCameraSupport
    - subFrame
    - std::string::empty
    - Camera*::cfa::getSize
    - assert
    - Camera*::getSensorInfo
    - CameraMetaData*::getCamera
    - blackLevelSeparate1D
    - Array2DRef
    - rawspeed::RawDecoder::getDefaultCrop
    - CameraSensorInfo*::mBlackLevelSeparate::empty
    linkageType: ''
    returnType: void
    signature: "void RawDecoder::setMetaData(const CameraMetaData* meta,\n                             const
      std::string& make, const std::string& model,\n                             const
      std::string& mode, int iso_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: rawspeed::RawDecoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: rawspeed::iRectangle2D
    signature: rawspeed::iRectangle2D RawDecoder::getDefaultCrop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decodeRawInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:322,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:323,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:323,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:326,1
    - Dst: RawImage::fixBadPixels
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:328,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:329,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:329,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:334,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:334,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:336,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:336,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:338,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 340
    functionName: rawspeed::RawDecoder::decodeRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - decodeRawInternal
    - RawImage::fixBadPixels
    - rawspeed::MSan::CheckMemIsInitialized
    - ThrowRDE
    - RawImage::getByteDataAsUncroppedArray2DRef
    - get
    - what
    linkageType: ''
    returnType: rawspeed::RawImage
    signature: rawspeed::RawImage RawDecoder::decodeRaw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decodeMetaDataInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:344,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:346,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:346,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:348,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:348,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:350,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: rawspeed::RawDecoder::decodeMetaData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - decodeMetaDataInternal
    - what
    linkageType: ''
    returnType: void
    signature: void RawDecoder::decodeMetaData(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkSupportInternal
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:356,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:358,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:358,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:360,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:360,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:362,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: rawspeed::RawDecoder::checkSupport
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - checkSupportInternal
    - what
    linkageType: ''
    returnType: void
    signature: void RawDecoder::checkSupport(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: rawspeed::AbstractTiffDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractTiffDecoder::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:38,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:40,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:41,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:42,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:45,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:47,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:49,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - filter
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: rawspeed::AbstractTiffDecoder::getIFDWithLargestImage
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDsWithTag
    - getEntry
    - TiffEntry*::getU32
    - ThrowRDE
    - auto*::getEntry
    - std::vector::empty
    - static_cast<unsigned>
    linkageType: ''
    returnType: TiffIFD
    signature: 'TiffIFD *

      AbstractTiffDecoder::getIFDWithLargestImage(TiffTag filter) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: rawspeed::AbstractTiffDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AbstractTiffDecoder::anchor() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:38,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:40,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:41,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:42,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:45,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:47,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:49,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - filter
    argTypes:
    - TiffTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: rawspeed::AbstractTiffDecoder::getIFDWithLargestImage
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDsWithTag
    - getEntry
    - TiffEntry*::getU32
    - ThrowRDE
    - auto*::getEntry
    - std::vector::empty
    - static_cast<unsigned>
    linkageType: ''
    returnType: TiffIFD
    signature: 'TiffIFD *

      AbstractTiffDecoder::getIFDWithLargestImage(TiffTag filter) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: rawspeed::PefDecoder::PefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::PefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: rawspeed::PefDecoder::PefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::PefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::SrwDecoder::SrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SrwDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::SrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::SrwDecoder::SrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SrwDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::SrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::DcsDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool DcsDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::DcsDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DcsDecoder::checkImageDimensions()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:59,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:62,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:65,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:67,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:68,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:74,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:76,1
    - Dst: UncompressedDecompressor::decode8BitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:79,1
    - Dst: UncompressedDecompressor::decode8BitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (linearization != nullptr)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 84
    functionName: rawspeed::DcsDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - TiffEntry*::getU16Array
    - UncompressedDecompressor::decode8BitRaw
    - ThrowRDE
    - assert
    - getEntryRecursive
    - getSubView
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage DcsDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: rawspeed::DcsDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void DcsDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::DcsDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool DcsDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::DcsDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DcsDecoder::checkImageDimensions()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:59,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:62,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:65,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:67,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:68,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:73,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:74,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:74,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:76,1
    - Dst: UncompressedDecompressor::decode8BitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:79,1
    - Dst: UncompressedDecompressor::decode8BitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (linearization != nullptr)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 84
    functionName: rawspeed::DcsDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - TiffEntry*::getU16Array
    - UncompressedDecompressor::decode8BitRaw
    - ThrowRDE
    - assert
    - getEntryRecursive
    - getSubView
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage DcsDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: rawspeed::DcsDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void DcsDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - Buffer
    - Camera*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: rawspeed::NakedDecoder::NakedDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::NakedDecoder(Buffer file, const Camera* c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: rawspeed::getAsBitOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<BitOrder>
    signature: Optional<BitOrder> getAsBitOrder(std::string_view s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: rawspeed::getAsBitOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<BitOrder>
    signature: Optional<BitOrder> getAsBitOrder(std::string_view s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:66,1
    - Dst: model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:67,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:70,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:71,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:71,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:73,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:76,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:80,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:82,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:85,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:89,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:91,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:91,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:92,1
    - Dst: getAsBitOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:93,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:95,1
    - Dst: auto::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 98
    functionName: rawspeed::NakedDecoder::parseHints
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - getAsBitOrder
    - make::c_str
    - ThrowRDE
    - model::c_str
    - auto::empty
    - auto::c_str
    - get
    - std::string
    - parseHint
    - c_str
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::parseHints()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NakedDecoder::parseHints
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:103,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:108,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:109,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: rawspeed::NakedDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - rawspeed::NakedDecoder::parseHints
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage NakedDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NakedDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: rawspeed::NakedDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NakedDecoder::checkCameraSupported
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: rawspeed::NakedDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - Buffer
    - Camera*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: rawspeed::NakedDecoder::NakedDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::NakedDecoder(Buffer file, const Camera* c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: rawspeed::getAsBitOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<BitOrder>
    signature: Optional<BitOrder> getAsBitOrder(std::string_view s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: rawspeed::getAsBitOrder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<BitOrder>
    signature: Optional<BitOrder> getAsBitOrder(std::string_view s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:66,1
    - Dst: model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:67,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:70,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:71,1
    - Dst: c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:71,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:73,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:76,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:80,1
    - Dst: parseHint
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:82,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:85,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:89,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:91,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:91,1
    - Dst: auto::empty
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:92,1
    - Dst: getAsBitOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:93,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:95,1
    - Dst: auto::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 98
    functionName: rawspeed::NakedDecoder::parseHints
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - getAsBitOrder
    - make::c_str
    - ThrowRDE
    - model::c_str
    - auto::empty
    - auto::c_str
    - get
    - std::string
    - parseHint
    - c_str
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::parseHints()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NakedDecoder::parseHints
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:101,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:103,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:107,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:108,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:109,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: rawspeed::NakedDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - rawspeed::NakedDecoder::parseHints
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage NakedDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::NakedDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: rawspeed::NakedDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NakedDecoder::checkCameraSupported
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: rawspeed::NakedDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void NakedDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::Cr2Decoder::Cr2Decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::Cr2Decoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::Cr2Decoder::Cr2Decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::Cr2Decoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::MefDecoder::MefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::MefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::MefDecoder::MefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::MefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:57,1
    - Dst: rawspeed::IiqDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:62,1
    - Dst: TiffRootIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:67,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:71,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: rawspeed::MosDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getEntryRecursive
    - TiffRootIFD*::getID
    - trimSpaces
    - TiffEntry*::getString
    - rawspeed::IiqDecoder::isAppropriateDecoder
    linkageType: ''
    returnType: bool
    signature: bool MosDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, Buffer
      file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:77,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:78,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:79,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:87,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:88,1
    - Dst: rawspeed::MosDecoder::getXMPTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:89,1
    - Dst: rawspeed::MosDecoder::getXMPTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts:
    - condition: (xmp != nullptr)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: rawspeed::MosDecoder::MosDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - rawspeed::MosDecoder::getXMPTag
    - std::move
    - ThrowRDE
    - assert
    - getEntryRecursive
    - TiffEntry*::getString
    linkageType: ''
    returnType: void
    signature: void MosDecoder::MosDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:95,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:95,1
    - Dst: std::string_view::find
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:96,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:98,1
    - Dst: std::string_view::data
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:98,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:99,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:99,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:100,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - xmp
    - tag
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: rawspeed::MosDecoder::getXMPTag
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::string_view::data
    - std::string_view::size
    - implicit_cast<int>
    - ThrowRDE
    - std::string_view::find
    - std::string_view::substr
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string MosDecoder::getXMPTag(std::string_view xmp, std::string_view
      tag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:108,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:109,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:110,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:112,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:113,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:116,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:121,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:125,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:125,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:126,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:127,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:129,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:134,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:134,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:136,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: rawspeed::MosDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - DataBuffer
    - getIFDWithTag
    - ByteStream
    - TiffIFD*::getEntry
    - ThrowRDE
    - ByteStream::getRemainSize
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - getTiffByteOrder
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage MosDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed::MosDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawDecoder::checkCameraSupported
    linkageType: ''
    returnType: void
    signature: void MosDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:154,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:158,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:160,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:167,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:168,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:169,1
    - Dst: memchr
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::peekString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:174,1
    - Dst: std::istringstream::fail
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:177,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:181,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:181,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:183,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:183,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:185,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:185,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 193
    functionName: rawspeed::MosDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - ByteStream::skipPrefix
    - std::istringstream::fail
    - memchr
    - ByteStream::peekData
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - getEntryRecursive
    - ByteStream::peekString
    - implicit_cast<float>
    - rawspeed::RawDecoder::setMetaData
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void MosDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:57,1
    - Dst: rawspeed::IiqDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:62,1
    - Dst: TiffRootIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:67,1
    - Dst: trimSpaces
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:71,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: rawspeed::MosDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getEntryRecursive
    - TiffRootIFD*::getID
    - trimSpaces
    - TiffEntry*::getString
    - rawspeed::IiqDecoder::isAppropriateDecoder
    linkageType: ''
    returnType: bool
    signature: bool MosDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, Buffer
      file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:77,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:78,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:79,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:87,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:88,1
    - Dst: rawspeed::MosDecoder::getXMPTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:89,1
    - Dst: rawspeed::MosDecoder::getXMPTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts:
    - condition: (xmp != nullptr)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: rawspeed::MosDecoder::MosDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - rawspeed::MosDecoder::getXMPTag
    - std::move
    - ThrowRDE
    - assert
    - getEntryRecursive
    - TiffEntry*::getString
    linkageType: ''
    returnType: void
    signature: void MosDecoder::MosDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:95,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:95,1
    - Dst: std::string_view::find
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:96,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:96,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:98,1
    - Dst: std::string_view::data
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:98,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:99,1
    - Dst: std::string_view::size
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:99,1
    - Dst: std::string
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:100,1
    - Dst: std::string_view::substr
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - xmp
    - tag
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: rawspeed::MosDecoder::getXMPTag
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::data
    - std::string_view::size
    - implicit_cast<int>
    - ThrowRDE
    - std::string_view::find
    - std::string_view::substr
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string MosDecoder::getXMPTag(std::string_view xmp, std::string_view
      tag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:108,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:109,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:110,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:112,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:113,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:116,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:117,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:121,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:125,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:125,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:126,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:127,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:129,1
    - Dst: getTiffByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:132,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:134,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:134,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:136,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:139,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: rawspeed::MosDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - DataBuffer
    - getIFDWithTag
    - ByteStream
    - TiffIFD*::getEntry
    - ThrowRDE
    - ByteStream::getRemainSize
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - getTiffByteOrder
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage MosDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: rawspeed::MosDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawDecoder::checkCameraSupported
    linkageType: ''
    returnType: void
    signature: void MosDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawDecoder::setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:154,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:158,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:160,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:167,1
    - Dst: ByteStream::skipPrefix
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:168,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:169,1
    - Dst: memchr
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:171,1
    - Dst: ByteStream::peekString
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:174,1
    - Dst: std::istringstream::fail
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:177,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:181,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:181,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:183,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:183,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:185,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:185,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 193
    functionName: rawspeed::MosDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - ByteStream::skipPrefix
    - std::istringstream::fail
    - memchr
    - ByteStream::peekData
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - getEntryRecursive
    - ByteStream::peekString
    - implicit_cast<float>
    - rawspeed::RawDecoder::setMetaData
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void MosDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: rawspeed::KdcDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool KdcDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:59,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:61,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:63,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:64,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:64,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:66,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:69,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:72,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (offset != nullptr)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: rawspeed::KdcDecoder::getInputBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - getEntryRecursive
    - getSubView
    - std::numeric_limits<uint32_t>::max
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: Buffer
    signature: Buffer KdcDecoder::getInputBuffer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:77,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:82,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:84,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:90,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:92,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:95,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:99,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:102,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:104,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:107,1
    - Dst: rawspeed::KdcDecoder::getInputBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:110,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:113,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:113,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:114,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:114,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:116,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ifdoffset != nullptr)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    constantsTouched: []
    func_position:
      end: 120
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 120
    functionName: rawspeed::KdcDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::KdcDecoder::getInputBuffer
    - TiffRootIFD::getEntryRecursive
    - dim::hasPositiveArea
    - hasEntryRecursive
    - ByteStream
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - getEntryRecursive
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - TiffEntry*::getRootIfdData
    linkageType: ''
    returnType: RawImage
    signature: RawImage KdcDecoder::decodeRawInternal()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:123,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:126,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:128,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:132,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:133,1
    - Dst: TiffRootIFD::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:135,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:136,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:139,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:140,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:141,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:146,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:146,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:151,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:152,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:157,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: rawspeed::KdcDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD::getEntryRecursive
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - setError
    - static_cast<uint16_t>
    - TiffEntry*::getByte
    - TiffEntry*::getU32
    - getEntryRecursive
    - TiffRootIFD::hasEntryRecursive
    - TiffEntry*::getRootIfdData
    - setMetaData
    - static_cast<float>
    - what
    linkageType: ''
    returnType: void
    signature: void KdcDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: rawspeed::KdcDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool KdcDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:59,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:61,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:63,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:64,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:64,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:66,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:69,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:72,1
    - Dst: implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (offset != nullptr)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: rawspeed::KdcDecoder::getInputBuffer
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - getEntryRecursive
    - getSubView
    - std::numeric_limits<uint32_t>::max
    - implicit_cast<Buffer::size_type>
    linkageType: ''
    returnType: Buffer
    signature: Buffer KdcDecoder::getInputBuffer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:76,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:77,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:80,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:82,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:84,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:90,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:92,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:95,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:99,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:101,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:102,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:104,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:106,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:106,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:107,1
    - Dst: rawspeed::KdcDecoder::getInputBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:110,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:113,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:113,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:114,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:114,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:116,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ifdoffset != nullptr)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    constantsTouched: []
    func_position:
      end: 120
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 120
    functionName: rawspeed::KdcDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::KdcDecoder::getInputBuffer
    - TiffRootIFD::getEntryRecursive
    - dim::hasPositiveArea
    - hasEntryRecursive
    - ByteStream
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - getEntryRecursive
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - TiffEntry*::getRootIfdData
    linkageType: ''
    returnType: RawImage
    signature: RawImage KdcDecoder::decodeRawInternal()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:123,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:126,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:128,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:132,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:133,1
    - Dst: TiffRootIFD::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:135,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:136,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:139,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:140,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:141,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:146,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:146,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:151,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:152,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:156,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:157,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:161,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: rawspeed::KdcDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD::getEntryRecursive
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - setError
    - static_cast<uint16_t>
    - TiffEntry*::getByte
    - TiffEntry*::getU32
    - getEntryRecursive
    - TiffRootIFD::hasEntryRecursive
    - TiffEntry*::getRootIfdData
    - setMetaData
    - static_cast<float>
    - what
    linkageType: ''
    returnType: void
    signature: void KdcDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::DcrDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool DcrDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::DcrDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DcrDecoder::checkImageDimensions()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:59,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:61,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:61,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:65,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:73,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:74,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:75,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:84,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:85,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:94,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:94,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:98,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:100,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:113,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:118,1
    - Dst: KodakDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ifdoffset != nullptr)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    - condition: (linearization != nullptr)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 122
    functionName: rawspeed::DcrDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD::getEntryRecursive
    - KodakDecompressor::decompress
    - TiffEntry*::getU16
    - DataBuffer
    - TiffEntry*::getU16Array
    - getEntry
    - __builtin_unreachable
    - TiffEntry*::getU32
    - ThrowRDE
    - getSubView
    - getEntryRecursive
    - assert
    - createData
    - static_cast<TiffTag>
    - TiffEntry*::getRootIfdData
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage DcrDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: rawspeed::DcrDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void DcrDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::DcrDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool DcrDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::DcrDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DcrDecoder::checkImageDimensions()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:59,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:61,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:61,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:65,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:67,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:69,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:73,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:74,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:75,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:78,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:82,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:84,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:85,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:94,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:94,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:98,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:100,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:113,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:118,1
    - Dst: KodakDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ifdoffset != nullptr)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    - condition: (linearization != nullptr)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 122
    functionName: rawspeed::DcrDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD::getEntryRecursive
    - KodakDecompressor::decompress
    - TiffEntry*::getU16
    - DataBuffer
    - TiffEntry*::getU16Array
    - getEntry
    - __builtin_unreachable
    - TiffEntry*::getU32
    - ThrowRDE
    - getSubView
    - getEntryRecursive
    - assert
    - createData
    - static_cast<TiffTag>
    - TiffEntry*::getRootIfdData
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage DcrDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: rawspeed::DcrDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void DcrDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::CrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::CrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::Rw2Decoder::Rw2Decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::Rw2Decoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::Rw2Decoder::Rw2Decoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::Rw2Decoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~RawDecoder()
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: rawspeed::RawDecoder::getRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * getRootIFD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~RawDecoder()
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RawDecoder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: rawspeed::RawDecoder::getRootIFD
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * getRootIFD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator bool() const
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: rawspeed::StiDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool StiDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:53,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:54,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:55,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:56,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:61,1
    - Dst: rawspeed::StiDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: rawspeed::StiDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithTag
    - rawspeed::StiDecoder::DecodeUncompressed
    - ThrowRDE
    - auto*::getEntry
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage StiDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:69,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:71,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:72,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:72,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:75,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:77,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:81,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:82,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:85,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:85,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:87,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:89,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: rawspeed::StiDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 1
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - DataBuffer
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - getDataType
    - getCpp
    - iRectangle2D
    - createData
    - UncompressedDecompressor::readUncompressedRaw
    linkageType: ''
    returnType: void
    signature: void StiDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: rawspeed::StiDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void StiDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: rawspeed::StiDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool StiDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:53,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:54,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:55,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:56,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:58,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:61,1
    - Dst: rawspeed::StiDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: rawspeed::StiDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithTag
    - rawspeed::StiDecoder::DecodeUncompressed
    - ThrowRDE
    - auto*::getEntry
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage StiDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:69,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:71,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:71,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:72,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:72,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:75,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:77,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:81,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:82,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:85,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:85,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:87,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:89,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: rawspeed::StiDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 2
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - DataBuffer
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - getDataType
    - getCpp
    - iRectangle2D
    - createData
    - UncompressedDecompressor::readUncompressedRaw
    linkageType: ''
    returnType: void
    signature: void StiDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: rawspeed::StiDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void StiDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::ErfDecoder::ErfDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ErfDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::ErfDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::ErfDecoder::ErfDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ErfDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::ErfDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: rawspeed::NefDecoder::NefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void NefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::NefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: rawspeed::NefDecoder::NefDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void NefDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: rawspeed::NefDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rawspeed::SimpleTiffDecoder::SimpleTiffDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rawspeed::SimpleTiffDecoder::SimpleTiffDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::ArwDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ArwDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:71,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:73,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:77,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:88,1
    - Dst: getU32BE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:89,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:89,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:93,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:95,1
    - Dst: vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:95,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:100,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:105,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:108,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:112,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:112,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:114,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 118
    functionName: rawspeed::ArwDecoder::decodeSRF
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Buffer::getSubView
    - DataBuffer
    - ByteStream
    - getIFDWithTag
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - getU32BE
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - vector::data
    - Buffer::begin
    - rawspeed::ArwDecoder::SonyDecrypt
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeSRF()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:121,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:122,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:126,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:127,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:131,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:133,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:133,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:135,1
    - Dst: SonyArw1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:136,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:141,1
    - Dst: rawspeed::ArwDecoder::decodeSRF
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: rawspeed::ArwDecoder::decodeTransitionalArw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - DataBuffer
    - getIFDWithTag
    - TiffIFD*::getEntry
    - ThrowRDE
    - getEntryRecursive
    - getSubView
    - SonyArw1Decompressor::decompress
    - createData
    - TiffEntry*::getString
    - rawspeed::ArwDecoder::decodeSRF
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeTransitionalArw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:149,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:153,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:156,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: rawspeed::ArwDecoder::decodeCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffIFD*::getEntry
    - TiffEntry*::getU16
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ArwDecoder::decodeCurve(const TiffIFD* raw)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:166,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:168,1
    - Dst: rawspeed::ArwDecoder::decodeTransitionalArw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:169,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:172,1
    - Dst: rawspeed::ArwDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:174,1
    - Dst: rawspeed::ArwDecoder::DecodeLJpeg
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:179,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:186,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:188,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:189,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:192,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:195,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:199,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:200,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:201,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:209,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:216,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:217,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:219,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:228,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:230,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:234,1
    - Dst: rawspeed::ArwDecoder::decodeCurve
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:236,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:240,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:241,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:243,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:244,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:246,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:247,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:249,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:249,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:253,1
    - Dst: SonyArw1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:254,1
    - Dst: rawspeed::ArwDecoder::DecodeARW2
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:257,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 264
    functionName: rawspeed::ArwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - vector::size
    - rawspeed::ArwDecoder::DecodeLJpeg
    - getSubView
    - iPoint2D
    - rawspeed::ArwDecoder::decodeCurve
    - getIFDsWithTag
    - TiffIFD*::getEntry
    - rawspeed::ArwDecoder::DecodeARW2
    - rawspeed::ArwDecoder::DecodeUncompressed
    - SonyArw1Decompressor::decompress
    - createData
    - DataBuffer
    - getEntry
    - TiffEntry*::getU32
    - rawspeed::ArwDecoder::decodeTransitionalArw
    - ThrowRDE
    - getSize
    - isValid
    - vector::empty
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:267,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:268,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:269,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:270,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:272,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:275,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:278,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:280,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:282,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:283,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:283,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:285,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:285,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:287,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:288,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:290,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:290,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:292,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:292,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:294,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 297
    functionName: rawspeed::ArwDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - DataBuffer
    - ByteStream
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:300,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:301,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:302,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:304,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:315,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:320,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:322,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:324,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:328,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:330,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:332,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:332,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:336,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:338,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:338,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:340,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:348,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:349,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:358,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:363,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:364,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:365,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:366,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:366,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:367,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:370,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:375,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:379,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:380,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:383,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:384,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:384,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:386,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:388,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:390,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:391,1
    - Dst: LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:392,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:395,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:395,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:397,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:397,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:400,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:405,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:406,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:407,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:410,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:411,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:411,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:412,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (tilew > 0)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (tileh > 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 413
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 413
    functionName: rawspeed::ArwDecoder::DecodeLJpeg
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - setError
    - NORangesSet::insert
    - __builtin_unreachable
    - getSubView
    - roundUpDivisionSafe
    - iPoint2D
    - std::string::c_str
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - createData
    - static_cast<int>
    - DataBuffer
    - subFrame
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - what
    - LJpegDecoder::decode
    - ByteStream
    - isTooManyErrors
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::DecodeLJpeg(const TiffIFD* raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:420,1
    - Dst: SonyArw2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:421,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:426,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:428,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:428,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:430,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:431,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - input
    - w
    - h
    - bpp
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 438
    functionName: rawspeed::ArwDecoder::DecodeARW2
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - SonyArw2Decompressor::decompress
    - ThrowRDE
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: "void ArwDecoder::DecodeARW2(ByteStream input, uint32_t w, uint32_t
      h,\n                            uint32_t bpp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:441,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:445,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:446,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:447,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:448,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:454,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:455,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:457,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:459,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:460,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:462,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:462,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:464,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:465,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:466,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:467,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:468,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:469,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:471,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:475,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:479,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:481,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:484,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:487,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:488,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 495
    functionName: rawspeed::ArwDecoder::ParseA100WB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - hasEntryRecursive
    - ByteStream
    - DataBuffer
    - ByteStream::getPosition
    - static_cast<float>
    - ThrowRDE
    - ByteStream::getRemainSize
    - getEntryRecursive
    - getSubView
    - TiffEntry*::getData
    - ByteStream::skipBytes
    - ByteStream::getSubStream
    - ByteStream::check
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::ParseA100WB() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:501,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:501,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:504,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:505,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:507,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:509,1
    - Dst: rawspeed::ArwDecoder::ParseA100WB
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:517,1
    - Dst: rawspeed::ArwDecoder::GetWB
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:519,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:522,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 525
    functionName: rawspeed::ArwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ArwDecoder::ParseA100WB
    - getID
    - hasEntryRecursive
    - setError
    - getEntryRecursive
    - cfa::setCFA
    - rawspeed::ArwDecoder::GetWB
    - iPoint2D
    - what
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: Array1DRef<uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:530,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:530,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:531,1
    - Dst: Array1DRef<uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:531,1
    - Dst: getU32BE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:545,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:555,1
    - Dst: Array1DRef<const uint8_t>::getBlock
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:555,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:559,1
    - Dst: Array1DRef<uint8_t>::getBlock
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ibuf
    - obuf
    - len
    - key
    argTypes:
    - Array1DRef<const uint8_t>
    - Array1DRef<uint8_t>
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 563
    functionName: rawspeed::ArwDecoder::SonyDecrypt
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - memcpy
    - Array1DRef<const uint8_t>::getBlock
    - getU32BE
    - Array1DRef<uint8_t>::size
    - invariant
    - Array1DRef<uint8_t>::getBlock
    linkageType: ''
    returnType: void
    signature: "void ArwDecoder::SonyDecrypt(Array1DRef<const uint8_t> ibuf,\n                             Array1DRef<uint8_t>
      obuf, int len, uint32_t key)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:567,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:571,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:572,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:573,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:576,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:578,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:580,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:582,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:584,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:585,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:587,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: roundDown
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:591,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:593,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:594,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:594,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:597,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:599,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:601,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:604,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:605,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:608,1
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:609,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:611,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:613,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:616,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:617,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:619,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:621,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:622,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:623,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:625,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:626,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:628,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:630,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:631,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:632,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:636,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:637,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:639,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:641,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:641,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:642,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:644,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:644,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:647,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:648,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:650,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:651,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sony_key != nullptr)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (sony_offset != nullptr)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (sony_length != nullptr)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 654
    functionName: rawspeed::ArwDecoder::GetWB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - hasEntryRecursive
    - NORangesSet::insert
    - TiffRootIFD::hasEntry
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - getSubView
    - TiffEntry*::getRootIfdData
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - getU32LE
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - TiffEntry*::getData
    - rawspeed::ArwDecoder::SonyDecrypt
    - TiffRootIFD::getEntryRecursive
    - Buffer::getSubView
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - TiffRootIFD::getEntry
    - blackLevelSeparate1D
    - roundDown
    - std::vector::data
    - Array2DRef
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::GetWB() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rawspeed::ArwDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ArwDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:71,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:73,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:74,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:77,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:88,1
    - Dst: getU32BE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:89,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:89,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:93,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:95,1
    - Dst: vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:95,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:100,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:102,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:105,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:108,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:111,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:112,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:112,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:114,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 118
    functionName: rawspeed::ArwDecoder::decodeSRF
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Buffer::getSubView
    - DataBuffer
    - ByteStream
    - getIFDWithTag
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - getU32BE
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - vector::data
    - Buffer::begin
    - rawspeed::ArwDecoder::SonyDecrypt
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeSRF()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:121,1
    - Dst: TiffEntry*::getString
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:122,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:126,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:127,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:131,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:133,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:133,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:135,1
    - Dst: SonyArw1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:136,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:141,1
    - Dst: rawspeed::ArwDecoder::decodeSRF
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: rawspeed::ArwDecoder::decodeTransitionalArw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - DataBuffer
    - getIFDWithTag
    - TiffIFD*::getEntry
    - ThrowRDE
    - getEntryRecursive
    - getSubView
    - SonyArw1Decompressor::decompress
    - createData
    - TiffEntry*::getString
    - rawspeed::ArwDecoder::decodeSRF
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeTransitionalArw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:149,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:153,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:156,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: rawspeed::ArwDecoder::decodeCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - TiffIFD*::getEntry
    - TiffEntry*::getU16
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ArwDecoder::decodeCurve(const TiffIFD* raw)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:166,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:168,1
    - Dst: rawspeed::ArwDecoder::decodeTransitionalArw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:169,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:172,1
    - Dst: rawspeed::ArwDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:174,1
    - Dst: rawspeed::ArwDecoder::DecodeLJpeg
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:179,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:186,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:188,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:189,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:192,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:195,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:199,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:200,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:201,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:209,1
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:216,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:217,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:219,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:228,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:230,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:234,1
    - Dst: rawspeed::ArwDecoder::decodeCurve
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:236,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:240,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:241,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:243,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:244,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:246,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:247,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:249,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:249,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:253,1
    - Dst: SonyArw1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:254,1
    - Dst: rawspeed::ArwDecoder::DecodeARW2
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:257,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 264
    functionName: rawspeed::ArwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - vector::size
    - rawspeed::ArwDecoder::DecodeLJpeg
    - getSubView
    - iPoint2D
    - rawspeed::ArwDecoder::decodeCurve
    - getIFDsWithTag
    - TiffIFD*::getEntry
    - rawspeed::ArwDecoder::DecodeARW2
    - rawspeed::ArwDecoder::DecodeUncompressed
    - SonyArw1Decompressor::decompress
    - createData
    - DataBuffer
    - getEntry
    - TiffEntry*::getU32
    - rawspeed::ArwDecoder::decodeTransitionalArw
    - ThrowRDE
    - getSize
    - isValid
    - vector::empty
    linkageType: ''
    returnType: RawImage
    signature: RawImage ArwDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:267,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:268,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:269,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:270,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:272,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:275,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:278,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:280,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:282,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:283,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:283,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:285,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:285,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:287,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:288,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:290,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:290,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:292,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:292,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:294,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 297
    functionName: rawspeed::ArwDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 2
    functionsReached:
    - contains
    - DataBuffer
    - ByteStream
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:300,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:301,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:302,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:304,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:307,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:315,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:320,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:322,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:324,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:328,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:330,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:332,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:332,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:336,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:338,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:338,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:340,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:348,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:349,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:351,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:358,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:363,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:364,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:365,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:366,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:366,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:367,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:370,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:375,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:379,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:380,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:383,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:384,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:384,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:386,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:388,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:390,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:391,1
    - Dst: LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:392,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:395,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:395,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:397,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:397,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:400,1
    - Dst: isTooManyErrors
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:405,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:406,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:407,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:410,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:411,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:411,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:412,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (tilew > 0)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (tileh > 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 413
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 413
    functionName: rawspeed::ArwDecoder::DecodeLJpeg
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 2
    functionsReached:
    - setError
    - NORangesSet::insert
    - __builtin_unreachable
    - getSubView
    - roundUpDivisionSafe
    - iPoint2D
    - std::string::c_str
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - createData
    - static_cast<int>
    - DataBuffer
    - subFrame
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - what
    - LJpegDecoder::decode
    - ByteStream
    - isTooManyErrors
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::DecodeLJpeg(const TiffIFD* raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:420,1
    - Dst: SonyArw2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:421,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:426,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:428,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:428,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:430,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:431,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - input
    - w
    - h
    - bpp
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 438
    functionName: rawspeed::ArwDecoder::DecodeARW2
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 2
    functionsReached:
    - SonyArw2Decompressor::decompress
    - ThrowRDE
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: "void ArwDecoder::DecodeARW2(ByteStream input, uint32_t w, uint32_t
      h,\n                            uint32_t bpp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:441,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:445,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:446,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:447,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:448,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:450,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:454,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:455,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:457,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:459,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:460,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:462,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:462,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:464,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:465,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:466,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:467,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:468,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:469,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:471,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:475,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:479,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:481,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:484,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:487,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:488,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 495
    functionName: rawspeed::ArwDecoder::ParseA100WB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getU32
    - hasEntryRecursive
    - ByteStream
    - DataBuffer
    - ByteStream::getPosition
    - static_cast<float>
    - ThrowRDE
    - ByteStream::getRemainSize
    - getEntryRecursive
    - getSubView
    - TiffEntry*::getData
    - ByteStream::skipBytes
    - ByteStream::getSubStream
    - ByteStream::check
    - ByteStream::setByteOrder
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::ParseA100WB() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:501,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:501,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:504,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:505,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:507,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:509,1
    - Dst: rawspeed::ArwDecoder::ParseA100WB
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:517,1
    - Dst: rawspeed::ArwDecoder::GetWB
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:519,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:522,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 525
    functionName: rawspeed::ArwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ArwDecoder::ParseA100WB
    - getID
    - hasEntryRecursive
    - setError
    - getEntryRecursive
    - cfa::setCFA
    - rawspeed::ArwDecoder::GetWB
    - iPoint2D
    - what
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: Array1DRef<uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:529,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:530,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:530,1
    - Dst: invariant
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:531,1
    - Dst: Array1DRef<uint8_t>::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:531,1
    - Dst: getU32BE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:545,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:555,1
    - Dst: Array1DRef<const uint8_t>::getBlock
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:555,1
    - Dst: memcpy
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:559,1
    - Dst: Array1DRef<uint8_t>::getBlock
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ibuf
    - obuf
    - len
    - key
    argTypes:
    - Array1DRef<const uint8_t>
    - Array1DRef<uint8_t>
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 563
    functionName: rawspeed::ArwDecoder::SonyDecrypt
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 3
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - memcpy
    - Array1DRef<const uint8_t>::getBlock
    - getU32BE
    - Array1DRef<uint8_t>::size
    - invariant
    - Array1DRef<uint8_t>::getBlock
    linkageType: ''
    returnType: void
    signature: "void ArwDecoder::SonyDecrypt(Array1DRef<const uint8_t> ibuf,\n                             Array1DRef<uint8_t>
      obuf, int len, uint32_t key)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:567,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:571,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:572,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:573,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:576,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:578,1
    - Dst: TiffRootIFD::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:580,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:582,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:584,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:585,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:587,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: roundDown
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:589,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:591,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:593,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:594,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:594,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:597,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:599,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:601,1
    - Dst: rawspeed::ArwDecoder::SonyDecrypt
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:604,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:605,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:608,1
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:609,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:611,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:613,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:616,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:617,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:619,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:621,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:622,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:623,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:625,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:626,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:628,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:630,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:631,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:632,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:636,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:637,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:639,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:641,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:641,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:642,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:644,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:644,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:647,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:648,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:650,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:651,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sony_key != nullptr)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (sony_offset != nullptr)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    - condition: (sony_length != nullptr)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 654
    functionName: rawspeed::ArwDecoder::GetWB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
    functionUses: 2
    functionsReached:
    - hasEntryRecursive
    - NORangesSet::insert
    - TiffRootIFD::hasEntry
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - getSubView
    - TiffEntry*::getRootIfdData
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - getU32LE
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - implicit_cast<int>
    - implicit_cast<uint32_t>
    - TiffEntry*::getData
    - rawspeed::ArwDecoder::SonyDecrypt
    - TiffRootIFD::getEntryRecursive
    - Buffer::getSubView
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - TiffRootIFD::getEntry
    - blackLevelSeparate1D
    - roundDown
    - std::vector::data
    - Array2DRef
    linkageType: ''
    returnType: void
    signature: void ArwDecoder::GetWB() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::IiqDecoder::IiqOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IiqOffset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - block
    - offset_
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::IiqDecoder::IiqOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IiqOffset(uint32_t block, uint32_t offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: rawspeed::IiqDecoder::IiqDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IiqDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::IiqDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::IiqDecoder::IiqOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IiqOffset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - block
    - offset_
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::IiqDecoder::IiqOffset
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IiqOffset(uint32_t block, uint32_t offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: rawspeed::IiqDecoder::IiqDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IiqDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: rawspeed::IiqDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawDecoderException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawDecoderException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: rawspeed::RawDecoderException::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawDecoderException::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: rawspeed::NefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool NefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:74,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:75,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:77,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:78,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:80,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:82,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:82,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:83,1
    - Dst: rawspeed::NefDecoder::D100IsCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:84,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:84,1
    - Dst: rawspeed::NefDecoder::DecodeD100Uncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:85,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:90,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:91,1
    - Dst: rawspeed::NefDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:92,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressedRGB
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:96,1
    - Dst: rawspeed::NefDecoder::DecodeSNefUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:105,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:113,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:115,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:116,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:117,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:119,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:122,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:122,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:124,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:124,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:126,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:133,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:134,1
    - Dst: NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 138
    functionName: rawspeed::NefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - getEntryRecursive
    - getSubView
    - auto*::getEntry
    - rawspeed::NefDecoder::NEFIsUncompressed
    - iPoint2D
    - contains
    - rawspeed::NefDecoder::DecodeSNefUncompressed
    - getIFDWithTag
    - TiffEntry*::getData
    - createData
    - rawspeed::NefDecoder::D100IsCompressed
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::NefDecoder::NEFIsUncompressedRGB
    - static_cast<TiffTag>
    - isValid
    - NikonDecompressor::decompress
    - rawspeed::NefDecoder::DecodeUncompressed
    - rawspeed::NefDecoder::DecodeD100Uncompressed
    linkageType: ''
    returnType: RawImage
    signature: RawImage NefDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: rawspeed::NefDecoder::D100IsCompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - getSubView
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::D100IsCompressed(uint32_t offset) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:158,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:159,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:160,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:161,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:167,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:185,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (avaliableInputBytes >= requiredInputBytes)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: rawspeed::NefDecoder::NEFIsUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - TiffIFD*::getEntry
    - TiffEntry*::getU32
    - assert
    - roundUpDivisionSafe
    - iPoint2D
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::NEFIsUncompressed(const TiffIFD* raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:201,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:202,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:203,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: rawspeed::NefDecoder::NEFIsUncompressedRGB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - iPoint2D
    - TiffIFD*::getEntry
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::NEFIsUncompressedRGB(const TiffIFD* raw)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:212,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:213,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:214,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:215,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:216,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:217,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:218,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:223,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:226,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:231,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:233,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:238,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:243,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:247,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:254,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:256,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:257,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:259,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:262,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:263,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:265,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:266,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:266,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:271,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:272,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:280,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:285,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:285,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:290,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:291,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:293,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:295,1
    - Dst: rawspeed::NefDecoder::readCoolpixSplitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:296,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:298,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:299,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:300,1
    - Dst: rootBuffer::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:301,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:302,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:307,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (height == offY)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    - condition: (slices.size() == counts->count)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 313
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 313
    functionName: rawspeed::NefDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - vector::size
    - rootBuffer::getByteOrder
    - getSubView
    - auto*::getEntry
    - roundUpDivisionSafe
    - get
    - ByteStream::getSize
    - iPoint2D
    - contains
    - createData
    - iRectangle2D
    - static_cast<uint32_t>
    - vector::reserve
    - DataBuffer
    - rawspeed::NefDecoder::readCoolpixSplitRaw
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - isValid
    - min
    - getIFDWithLargestImage
    - vector::empty
    - UncompressedDecompressor::readUncompressedRaw
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeUncompressed() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:318,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:321,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:323,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:333,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:335,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:339,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:342,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    - Dst: BitStreamerMSB::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    - Dst: BitStreamerMSB::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - input
    - ' size'
    - ' offset'
    - inputPitch
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    - int
    assertStmts:
    - condition: "(even.getRemainingSize() == 0 && odd.getRemainingSize() == 0 &&\n
        \        \"Should have run out of input\")"
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 358
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 358
    functionName: rawspeed::NefDecoder::readCoolpixSplitRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - BitStreamerMSB::getRemainingSize
    - img
    - ByteStream::getStream
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - assert
    - BitStreamerMSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void NefDecoder::readCoolpixSplitRaw(ByteStream input, const iPoint2D&
      size,\n                                     const iPoint2D& offset,\n                                     int
      inputPitch) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:361,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:363,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:368,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:370,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:370,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:371,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:372,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:376,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:376,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:378,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: rawspeed::NefDecoder::DecodeD100Uncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - DataBuffer
    - ByteStream
    - getIFDWithTag
    - ByteStream::getRemainSize
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::decode12BitRawWithControl
    - auto*::getEntry
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeD100Uncompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:384,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:385,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:386,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:387,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:391,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:393,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:394,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:396,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:398,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:398,1
    - Dst: rawspeed::NefDecoder::DecodeNikonSNef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: rawspeed::NefDecoder::DecodeSNefUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - getIFDWithLargestImage
    - rawspeed::NefDecoder::DecodeNikonSNef
    - DataBuffer
    - ThrowRDE
    - getSubView
    - auto*::getEntry
    - setCpp
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeSNefUncompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:403,1
    - Dst: rawspeed::NefDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:404,1
    - Dst: rawspeed::NefDecoder::getExtendedMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:405,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:407,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:408,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: rawspeed::NefDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NefDecoder::getExtendedMode
    - getID
    - CameraMetaData*::hasCamera
    - checkCameraSupported
    - rawspeed::NefDecoder::getMode
    linkageType: ''
    returnType: void
    signature: void NefDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:414,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: rawspeed::NefDecoder::getBitPerSample
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithLargestImage
    - auto*::getEntry
    linkageType: ''
    returnType: int
    signature: int NefDecoder::getBitPerSample() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:420,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:421,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:422,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressedRGB
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:424,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:427,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: rawspeed::NefDecoder::getMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - getIFDWithLargestImage
    - rawspeed::NefDecoder::NEFIsUncompressed
    - auto*::getEntry
    - ostringstream::str
    - rawspeed::NefDecoder::NEFIsUncompressedRGB
    linkageType: ''
    returnType: std::string
    signature: std::string NefDecoder::getMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:438,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:439,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:440,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 444
    functionName: rawspeed::NefDecoder::getExtendedMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - getIFDWithTag
    - auto*::getEntry
    - ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string NefDecoder::getExtendedMode(const std::string& mode) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:497,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:497,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:498,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:498,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:501,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:502,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:503,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:508,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:508,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:510,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:510,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:514,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:516,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:523,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:523,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:524,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:524,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:525,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:525,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:530,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:530,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:531,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:531,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:532,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:532,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:536,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:536,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:537,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:537,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:540,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:540,1
    - Dst: std::string::length
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:542,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:543,1
    - Dst: std::string::length
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:543,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:554,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:554,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:555,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:563,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:564,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:569,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:577,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:577,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:578,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:578,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:579,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:579,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:583,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:583,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:585,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:585,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:586,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:588,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:589,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:591,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:591,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:593,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:593,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:595,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:597,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:603,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:604,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:606,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:606,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:607,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:607,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:608,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:608,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:609,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:609,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:615,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 619
    functionName: rawspeed::NefDecoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - hasEntryRecursive
    - TiffEntry*::getByte
    - ByteStream::getByte
    - getEntryRecursive
    - static_cast<float>
    - contains
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - ByteStream::hasPatternAt
    - ByteStream::skipBytes
    - TiffEntry*::getData
    - implicit_cast<float>
    - ByteStream::getU32
    - ThrowRDE
    - static_cast<TiffTag>
    - ByteStream::setByteOrder
    - getU16BE
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void NefDecoder::parseWhiteBalance() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:623,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:623,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:629,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:630,1
    - Dst: rawspeed::NefDecoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:632,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:634,1
    - Dst: rawspeed::NefDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:635,1
    - Dst: rawspeed::NefDecoder::getExtendedMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:636,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:639,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:641,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:643,1
    - Dst: rawspeed::NefDecoder::getBitPerSample
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:644,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:646,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:649,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:649,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:650,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:651,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:651,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:652,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:652,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:653,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:653,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:654,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:654,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:657,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:658,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:659,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:660,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:662,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 669
    functionName: rawspeed::NefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NefDecoder::getExtendedMode
    - getID
    - TiffEntry*::getU16
    - hasEntryRecursive
    - rawspeed::NefDecoder::getBitPerSample
    - blackLevelSeparateStorage::data
    - Array2DRef
    - CameraMetaData*::hasCamera
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - rawspeed::NefDecoder::getMode
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - setMetaData
    - blackLevelSeparate1D
    - rawspeed::NefDecoder::parseWhiteBalance
    linkageType: ''
    returnType: void
    signature: void NefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:677,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:681,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:681,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:683,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:685,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:687,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:689,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:690,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:694,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:696,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:697,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:697,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:705,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:706,1
    - Dst: rawspeed::NefDecoder::gammaCurve
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:708,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:712,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:712,1
    - Dst: auto::resize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:715,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:720,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:722,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:724,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:724,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:726,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:728,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:729,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:730,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:731,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:732,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:733,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:734,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:736,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:737,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:738,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:739,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:745,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:746,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:747,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:748,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:749,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:750,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:758,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:760,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:763,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:763,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:765,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:767,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:768,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:770,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:770,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:772,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:773,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:774,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:774,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:776,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:779,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:779,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:781,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:783,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:786,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:786,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:788,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:790,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:791,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:793,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:793,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:795,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:796,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:797,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:797,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:799,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:802,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:802,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (wb != nullptr)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 805
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 805
    functionName: rawspeed::NefDecoder::DecodeNikonSNef
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef::height
    - in
    - implicit_cast<double>
    - ByteStream::peekData
    - ThrowIOE
    - getEntryRecursive
    - auto::resize
    - static_cast<float>
    - Array2DRef::width
    - TiffEntry*::getFloat
    - rawspeed::NefDecoder::gammaCurve
    - reinterpret_cast<std::byte*>
    - getU16DataAsUncroppedArray2DRef
    - out
    - static_cast<int>
    - implicit_cast<float>
    - ThrowRDE
    - assert
    - static_cast<TiffTag>
    - clampBits
    - Array2DRef
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeNikonSNef(ByteStream input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: SQR
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:819,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:822,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:823,1
    - Dst: exp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:825,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:828,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:831,1
    - Dst: SQR
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:832,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:833,1
    - Dst: SQR
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:836,1
    - Dst: log
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:837,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:843,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:850,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:851,1
    - Dst: exp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:853,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:856,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:859,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:859,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - pwr
    - ts
    - imax
    argTypes:
    - double
    - double
    - int
    assertStmts:
    - condition: (curve.size() == 65536)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 862
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 862
    functionName: rawspeed::NefDecoder::gammaCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::abs
    - SQR
    - pow
    - static_cast<uint16_t>
    - log
    - std::vector::size
    - static_cast<double>
    - assert
    - exp
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> NefDecoder::gammaCurve(double pwr, double ts,
      int imax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: rawspeed::NefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool NefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:74,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:75,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:77,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:78,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:80,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:82,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:82,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:83,1
    - Dst: rawspeed::NefDecoder::D100IsCompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:84,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:84,1
    - Dst: rawspeed::NefDecoder::DecodeD100Uncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:85,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:90,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:91,1
    - Dst: rawspeed::NefDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:92,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressedRGB
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:96,1
    - Dst: rawspeed::NefDecoder::DecodeSNefUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:97,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:105,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:109,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:113,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:115,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:116,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:117,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:119,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:122,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:122,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:124,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:124,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:126,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:131,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:133,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:134,1
    - Dst: NikonDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 138
    functionName: rawspeed::NefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - getEntryRecursive
    - getSubView
    - auto*::getEntry
    - rawspeed::NefDecoder::NEFIsUncompressed
    - iPoint2D
    - contains
    - rawspeed::NefDecoder::DecodeSNefUncompressed
    - getIFDWithTag
    - TiffEntry*::getData
    - createData
    - rawspeed::NefDecoder::D100IsCompressed
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::NefDecoder::NEFIsUncompressedRGB
    - static_cast<TiffTag>
    - isValid
    - NikonDecompressor::decompress
    - rawspeed::NefDecoder::DecodeUncompressed
    - rawspeed::NefDecoder::DecodeD100Uncompressed
    linkageType: ''
    returnType: RawImage
    signature: RawImage NefDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: rawspeed::NefDecoder::D100IsCompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - getSubView
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::D100IsCompressed(uint32_t offset) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:158,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:159,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:160,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:161,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:166,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:167,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:185,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (avaliableInputBytes >= requiredInputBytes)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: rawspeed::NefDecoder::NEFIsUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 3
    functionsReached:
    - TiffIFD*::getEntry
    - TiffEntry*::getU32
    - assert
    - roundUpDivisionSafe
    - iPoint2D
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::NEFIsUncompressed(const TiffIFD* raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:201,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:202,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:203,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: rawspeed::NefDecoder::NEFIsUncompressedRGB
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 3
    functionsReached:
    - iPoint2D
    - TiffIFD*::getEntry
    linkageType: ''
    returnType: bool
    signature: bool NefDecoder::NEFIsUncompressedRGB(const TiffIFD* raw)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:212,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:213,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:214,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:215,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:216,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:217,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:218,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:223,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:226,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:231,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:232,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:233,1
    - Dst: vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:238,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:243,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:247,1
    - Dst: min
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:254,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:256,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:257,1
    - Dst: vector::push_back
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:259,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:262,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:263,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:265,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:266,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:266,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:271,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:272,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:280,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:285,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:285,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:290,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:291,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:293,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:295,1
    - Dst: rawspeed::NefDecoder::readCoolpixSplitRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:296,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:298,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:299,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:300,1
    - Dst: rootBuffer::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:301,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:302,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:307,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (height == offY)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    - condition: (slices.size() == counts->count)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 313
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 313
    functionName: rawspeed::NefDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - vector::size
    - rootBuffer::getByteOrder
    - getSubView
    - auto*::getEntry
    - roundUpDivisionSafe
    - get
    - ByteStream::getSize
    - iPoint2D
    - contains
    - createData
    - iRectangle2D
    - static_cast<uint32_t>
    - vector::reserve
    - DataBuffer
    - rawspeed::NefDecoder::readCoolpixSplitRaw
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - isValid
    - min
    - getIFDWithLargestImage
    - vector::empty
    - UncompressedDecompressor::readUncompressedRaw
    - vector::push_back
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeUncompressed() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:318,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:321,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:323,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:333,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:335,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:339,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:342,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:350,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:353,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    - Dst: BitStreamerMSB::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    - Dst: BitStreamerMSB::getRemainingSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - input
    - ' size'
    - ' offset'
    - inputPitch
    argTypes:
    - ByteStream
    - iPoint2D
    - iPoint2D
    - int
    assertStmts:
    - condition: "(even.getRemainingSize() == 0 && odd.getRemainingSize() == 0 &&\n
        \        \"Should have run out of input\")"
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 358
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 358
    functionName: rawspeed::NefDecoder::readCoolpixSplitRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - BitStreamerMSB::getRemainingSize
    - img
    - ByteStream::getStream
    - ThrowRDE
    - getU16DataAsUncroppedArray2DRef
    - assert
    - BitStreamerMSB::getBits
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: "void NefDecoder::readCoolpixSplitRaw(ByteStream input, const iPoint2D&
      size,\n                                     const iPoint2D& offset,\n                                     int
      inputPitch) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:361,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:363,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:368,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:370,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:370,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:371,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:372,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:375,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:376,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:376,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:378,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: rawspeed::NefDecoder::DecodeD100Uncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - DataBuffer
    - ByteStream
    - getIFDWithTag
    - ByteStream::getRemainSize
    - ThrowRDE
    - getSubView
    - UncompressedDecompressor::decode12BitRawWithControl
    - auto*::getEntry
    - iRectangle2D
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeD100Uncompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:384,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:385,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:386,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:387,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:391,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:393,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:394,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:396,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:398,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:398,1
    - Dst: rawspeed::NefDecoder::DecodeNikonSNef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: rawspeed::NefDecoder::DecodeSNefUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - getIFDWithLargestImage
    - rawspeed::NefDecoder::DecodeNikonSNef
    - DataBuffer
    - ThrowRDE
    - getSubView
    - auto*::getEntry
    - setCpp
    - createData
    - iPoint2D
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeSNefUncompressed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:403,1
    - Dst: rawspeed::NefDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:404,1
    - Dst: rawspeed::NefDecoder::getExtendedMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:405,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:407,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:408,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: rawspeed::NefDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NefDecoder::getExtendedMode
    - getID
    - CameraMetaData*::hasCamera
    - checkCameraSupported
    - rawspeed::NefDecoder::getMode
    linkageType: ''
    returnType: void
    signature: void NefDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:414,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: rawspeed::NefDecoder::getBitPerSample
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - getIFDWithLargestImage
    - auto*::getEntry
    linkageType: ''
    returnType: int
    signature: int NefDecoder::getBitPerSample() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:420,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:421,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:422,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressedRGB
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:424,1
    - Dst: rawspeed::NefDecoder::NEFIsUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:427,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: rawspeed::NefDecoder::getMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 3
    functionsReached:
    - getIFDWithLargestImage
    - rawspeed::NefDecoder::NEFIsUncompressed
    - auto*::getEntry
    - ostringstream::str
    - rawspeed::NefDecoder::NEFIsUncompressedRGB
    linkageType: ''
    returnType: std::string
    signature: std::string NefDecoder::getMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:438,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:439,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:440,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 444
    functionName: rawspeed::NefDecoder::getExtendedMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 3
    functionsReached:
    - getIFDWithTag
    - auto*::getEntry
    - ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string NefDecoder::getExtendedMode(const std::string& mode) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:497,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:497,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:498,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:498,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:501,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:502,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:503,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:508,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:508,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:510,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:510,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:514,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:516,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:523,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:523,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:524,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:524,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:525,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:525,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:530,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:530,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:531,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:531,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:532,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:532,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:536,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:536,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:537,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:537,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:540,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:540,1
    - Dst: std::string::length
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:542,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:543,1
    - Dst: std::string::length
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:543,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:554,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:554,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:555,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:563,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:564,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:569,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:577,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:577,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:578,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:578,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:579,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:579,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:583,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:583,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:585,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:585,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:586,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:588,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:589,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:591,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:591,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:593,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:593,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:595,1
    - Dst: ByteStream::hasPatternAt
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:597,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:603,1
    - Dst: ByteStream::setByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:604,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:606,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:606,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:607,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:607,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:608,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:608,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:609,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:609,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:615,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 619
    functionName: rawspeed::NefDecoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - hasEntryRecursive
    - TiffEntry*::getByte
    - ByteStream::getByte
    - getEntryRecursive
    - static_cast<float>
    - contains
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - ByteStream::hasPatternAt
    - ByteStream::skipBytes
    - TiffEntry*::getData
    - implicit_cast<float>
    - ByteStream::getU32
    - ThrowRDE
    - static_cast<TiffTag>
    - ByteStream::setByteOrder
    - getU16BE
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void NefDecoder::parseWhiteBalance() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:623,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:623,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:629,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:630,1
    - Dst: rawspeed::NefDecoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:632,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:634,1
    - Dst: rawspeed::NefDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:635,1
    - Dst: rawspeed::NefDecoder::getExtendedMode
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:636,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:639,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:641,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:643,1
    - Dst: rawspeed::NefDecoder::getBitPerSample
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:644,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:646,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:649,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:649,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:650,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:651,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:651,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:652,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:652,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:653,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:653,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:654,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:654,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:657,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:658,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:659,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:660,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:662,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 669
    functionName: rawspeed::NefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::NefDecoder::getExtendedMode
    - getID
    - TiffEntry*::getU16
    - hasEntryRecursive
    - rawspeed::NefDecoder::getBitPerSample
    - blackLevelSeparateStorage::data
    - Array2DRef
    - CameraMetaData*::hasCamera
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - rawspeed::NefDecoder::getMode
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - setMetaData
    - blackLevelSeparate1D
    - rawspeed::NefDecoder::parseWhiteBalance
    linkageType: ''
    returnType: void
    signature: void NefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ThrowIOE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:677,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:681,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:681,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:683,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:685,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:687,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:689,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:690,1
    - Dst: implicit_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:694,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:696,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:697,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:697,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:705,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:706,1
    - Dst: rawspeed::NefDecoder::gammaCurve
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:708,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:712,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:712,1
    - Dst: auto::resize
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:715,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:720,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:722,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: ByteStream::peekData
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:723,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:724,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:724,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:726,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:727,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:728,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:729,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:730,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:731,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:732,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:733,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:734,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:736,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:737,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:738,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:739,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:745,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:746,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:747,1
    - Dst: in
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:748,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:749,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:750,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:758,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:759,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:760,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:763,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:763,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:765,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:766,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:767,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:768,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:770,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:770,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:772,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:773,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:774,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:774,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:776,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:779,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:779,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:781,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:782,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:783,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:786,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:786,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:788,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:789,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:790,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:791,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:793,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:793,1
    - Dst: setWithLookUp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:795,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:796,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:797,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:797,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:799,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:802,1
    - Dst: clampBits
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:802,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - input
    argTypes:
    - ByteStream
    assertStmts:
    - condition: (wb != nullptr)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 805
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 805
    functionName: rawspeed::NefDecoder::DecodeNikonSNef
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - Array2DRef::height
    - in
    - implicit_cast<double>
    - ByteStream::peekData
    - ThrowIOE
    - getEntryRecursive
    - auto::resize
    - static_cast<float>
    - Array2DRef::width
    - TiffEntry*::getFloat
    - rawspeed::NefDecoder::gammaCurve
    - reinterpret_cast<std::byte*>
    - getU16DataAsUncroppedArray2DRef
    - out
    - static_cast<int>
    - implicit_cast<float>
    - ThrowRDE
    - assert
    - static_cast<TiffTag>
    - clampBits
    - Array2DRef
    - setWithLookUp
    linkageType: ''
    returnType: void
    signature: void NefDecoder::DecodeNikonSNef(ByteStream input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: SQR
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:819,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:822,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:823,1
    - Dst: exp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:825,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:828,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:831,1
    - Dst: SQR
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:832,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:833,1
    - Dst: SQR
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:836,1
    - Dst: log
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:837,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:843,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:850,1
    - Dst: pow
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:851,1
    - Dst: exp
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:853,1
    - Dst: static_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:856,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:859,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp:859,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - pwr
    - ts
    - imax
    argTypes:
    - double
    - double
    - int
    assertStmts:
    - condition: (curve.size() == 65536)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    constantsTouched: []
    func_position:
      end: 862
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 862
    functionName: rawspeed::NefDecoder::gammaCurve
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - SQR
    - pow
    - static_cast<uint16_t>
    - log
    - std::vector::size
    - static_cast<double>
    - assert
    - exp
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> NefDecoder::gammaCurve(double pwr, double ts,
      int imax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: rawspeed::Rw2Decoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool Rw2Decoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:78,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::get
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' ifd'
    - tag
    - ' output'
    argTypes:
    - TiffIFD
    - TiffTag
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: rawspeed::getPanasonicTiffVector
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - resize
    - ByteStream::getU16
    - ByteStream::get
    - getEntry
    linkageType: ''
    returnType: void
    signature: "void getPanasonicTiffVector(const TiffIFD& ifd, TiffTag tag,\n                            std::vector<T>&
      output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:123,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:126,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:128,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:129,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:134,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: rawspeed::DecompressorV8Params::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - size
    - end
    - begin
    - std::numeric_limits<uint16_t>::max
    - std::any_of
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:148,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:150,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:152,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:154,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:156,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:158,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:159,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:167,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:169,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:171,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:173,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:175,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:177,1
    - Dst: rawspeed::DecompressorV8Params::validate
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' ifd'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 181
    functionName: rawspeed::DecompressorV8Params::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getPanasonicTiffVector
    - rawspeed::DecompressorV8Params::validate
    - getEntry
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::DecompressorV8Params(const TiffIFD& ifd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:191,1
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:193,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:208,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' mParams'
    - ' ifd'
    argTypes:
    - DecompressorV8Params
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 219
    functionName: rawspeed::populateGammaLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::getPanasonicTiffVector
    - std::vector::size
    - std::vector::cbegin
    - std::vector::cend
    - ThrowRDE
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void populateGammaLUT(const DecompressorV8Params& mParams, const TiffIFD&
      ifd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:233,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    - Dst: DataBuffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mParams'
    - mInputFile
    argTypes:
    - DecompressorV8Params
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: rawspeed::getInputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer::getAsArray1DRef
    - Buffer::getSubView
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Array1DRef<const uint8_t>>
    signature: std::vector<Array1DRef<const uint8_t>> getInputStrips(const DecompressorV8Params&
      mParams, Buffer mInputFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:78,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::get
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' ifd'
    - tag
    - ' output'
    argTypes:
    - TiffIFD
    - TiffTag
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: rawspeed::getPanasonicTiffVector
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 1
    functionsReached:
    - resize
    - ByteStream::getU16
    - ByteStream::get
    - getEntry
    linkageType: ''
    returnType: void
    signature: "void getPanasonicTiffVector(const TiffIFD& ifd, TiffTag tag,\n                            std::vector<T>&
      output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:123,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:126,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:128,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:129,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:134,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: rawspeed::DecompressorV8Params::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 1
    functionsReached:
    - size
    - end
    - begin
    - std::numeric_limits<uint16_t>::max
    - std::any_of
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:148,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:150,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:152,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:154,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:156,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:158,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:159,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:167,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:169,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:171,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:173,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:175,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:177,1
    - Dst: rawspeed::DecompressorV8Params::validate
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' ifd'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 181
    functionName: rawspeed::DecompressorV8Params::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getPanasonicTiffVector
    - rawspeed::DecompressorV8Params::validate
    - getEntry
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::DecompressorV8Params(const TiffIFD& ifd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:191,1
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:193,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:208,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' mParams'
    - ' ifd'
    argTypes:
    - DecompressorV8Params
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 219
    functionName: rawspeed::populateGammaLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::getPanasonicTiffVector
    - std::vector::size
    - std::vector::cbegin
    - std::vector::cend
    - ThrowRDE
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void populateGammaLUT(const DecompressorV8Params& mParams, const TiffIFD&
      ifd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:233,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    - Dst: DataBuffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mParams'
    - mInputFile
    argTypes:
    - DecompressorV8Params
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: rawspeed::getInputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer::getAsArray1DRef
    - Buffer::getSubView
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Array1DRef<const uint8_t>>
    signature: std::vector<Array1DRef<const uint8_t>> getInputStrips(const DecompressorV8Params&
      mParams, Buffer mInputFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:244,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:245,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:246,1
    - Dst: populateGammaLUT
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:249,1
    - Dst: getInputStrips
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:251,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:254,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:255,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:256,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:257,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:258,1
    - Dst: PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:260,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:261,1
    - Dst: PanasonicV8Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: rawspeed::Rw2Decoder::decodeRawV8
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getAsBayerPhase
    - getInputStrips
    - populateGammaLUT
    - PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
    - PanasonicV8Decompressor::decompress
    - getEntry
    - ThrowRDE
    - getAsArray1DRef
    - createData
    - rawspeed::Rw2Decoder::parseCFA
    linkageType: ''
    returnType: RawImage
    signature: RawImage Rw2Decoder::decodeRawV8(const TiffIFD& raw) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:270,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:273,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:275,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:277,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:277,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:278,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:278,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:282,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:284,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:287,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:289,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:290,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:291,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:293,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:295,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:301,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:301,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:303,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:304,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:309,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:309,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:311,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:312,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:318,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:319,1
    - Dst: PanasonicV4Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:320,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:323,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:328,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:331,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:333,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:333,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:336,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:337,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:340,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:343,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:345,1
    - Dst: PanasonicV4Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:346,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:351,1
    - Dst: PanasonicV5Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:352,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:357,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:361,1
    - Dst: PanasonicV6Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:362,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:367,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:370,1
    - Dst: PanasonicV7Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:371,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:378,1
    - Dst: rawspeed::Rw2Decoder::decodeRawV8
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:380,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:383,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 388
    functionName: rawspeed::Rw2Decoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::decodeRawV8
    - hasEntryRecursive
    - getSubView
    - iPoint2D
    - contains
    - getIFDWithTag
    - TiffIFD*::getEntry
    - iRectangle2D
    - createData
    - TiffIFD*::hasEntry
    - DataBuffer
    - PanasonicV4Decompressor::decompress
    - TiffEntry*::getU32
    - ThrowRDE
    - getSize
    - UncompressedDecompressor::decode12BitRawWithControl
    - static_cast<TiffTag>
    - PanasonicV6Decompressor::decompress
    - UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    - isValid
    - PanasonicV5Decompressor::decompress
    - ByteStream
    - PanasonicV7Decompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage Rw2Decoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:391,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:392,1
    - Dst: rawspeed::Rw2Decoder::guessMode
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:392,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: rawspeed::Rw2Decoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::guessMode
    - checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:397,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:398,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:401,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:403,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:404,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:407,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:410,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:410,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:413,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:413,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:416,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:416,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:419,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:419,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 424
    functionName: rawspeed::Rw2Decoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 1
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - iPoint2D
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::parseCFA() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:427,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:428,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: rawspeed::Rw2Decoder::getRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithTag
    - hasEntryRecursive
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * Rw2Decoder::getRaw() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:433,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:435,1
    - Dst: rawspeed::Rw2Decoder::guessMode
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:436,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:438,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:439,1
    - Dst: rawspeed::Rw2Decoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:441,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:442,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:445,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:445,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:446,1
    - Dst: rawspeed::Rw2Decoder::getRaw
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:449,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:452,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:452,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:453,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:453,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:454,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:454,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:457,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:461,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:466,1
    - Dst: blackLevelsNeedOffsetting
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:467,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:471,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:472,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:476,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:476,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:477,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:477,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:478,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:478,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:481,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:481,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:482,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:486,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:489,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:492,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:495,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:498,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:499,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:506,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:506,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:507,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:507,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:508,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:508,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:510,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:511,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:511,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:512,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:513,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:513,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:514,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:515,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:515,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:517,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:517,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:518,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:518,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:520,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:521,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:521,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:523,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:524,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:524,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 527
    functionName: rawspeed::Rw2Decoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - rawspeed::ColorFilterArray::colorToString
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - cfa::getColorAt
    - rawspeed::Rw2Decoder::checkCameraSupported
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - std::string::c_str
    - rawspeed::Rw2Decoder::getRaw
    - TiffIFD*::getEntry
    - rawspeed::Rw2Decoder::guessMode
    - TiffIFD*::hasEntry
    - getID
    - blackLevelsNeedOffsetting
    - ThrowRDE
    - static_cast<TiffTag>
    - setMetaData
    - rawspeed::Rw2Decoder::parseCFA
    - blackLevelSeparate1D
    - getBlack
    - writeLog
    - Array2DRef
    - __builtin_sadd_overflow
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isAllocated
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:532,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:535,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:535,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:537,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:540,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:546,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:552,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: rawspeed::Rw2Decoder::guessMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - isAllocated
    - writeLog
    - fabs
    - static_cast<float>
    linkageType: ''
    returnType: std::string
    signature: std::string Rw2Decoder::guessMode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::getRaw
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:562,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:563,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:564,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:565,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:566,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:568,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:570,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:572,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:574,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:581,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:582,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:583,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 585
    functionName: rawspeed::Rw2Decoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::getRaw
    - static_cast<unsigned int>
    - TiffIFD*::getEntry
    - ThrowRDE
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: rawspeed::iRectangle2D
    signature: rawspeed::iRectangle2D Rw2Decoder::getDefaultCrop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: rawspeed::Rw2Decoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool Rw2Decoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:78,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::get
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' ifd'
    - tag
    - ' output'
    argTypes:
    - TiffIFD
    - TiffTag
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: rawspeed::getPanasonicTiffVector
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 2
    functionsReached:
    - resize
    - ByteStream::getU16
    - ByteStream::get
    - getEntry
    linkageType: ''
    returnType: void
    signature: "void getPanasonicTiffVector(const TiffIFD& ifd, TiffTag tag,\n                            std::vector<T>&
      output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:123,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:126,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:128,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:129,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:134,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: rawspeed::DecompressorV8Params::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 2
    functionsReached:
    - size
    - end
    - begin
    - std::numeric_limits<uint16_t>::max
    - std::any_of
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:148,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:150,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:152,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:154,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:156,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:158,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:159,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:167,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:169,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:171,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:173,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:175,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:177,1
    - Dst: rawspeed::DecompressorV8Params::validate
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' ifd'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 181
    functionName: rawspeed::DecompressorV8Params::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getPanasonicTiffVector
    - rawspeed::DecompressorV8Params::validate
    - getEntry
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::DecompressorV8Params(const TiffIFD& ifd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:191,1
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:193,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:208,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' mParams'
    - ' ifd'
    argTypes:
    - DecompressorV8Params
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 219
    functionName: rawspeed::populateGammaLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::getPanasonicTiffVector
    - std::vector::size
    - std::vector::cbegin
    - std::vector::cend
    - ThrowRDE
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void populateGammaLUT(const DecompressorV8Params& mParams, const TiffIFD&
      ifd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:233,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    - Dst: DataBuffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mParams'
    - mInputFile
    argTypes:
    - DecompressorV8Params
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: rawspeed::getInputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer::getAsArray1DRef
    - Buffer::getSubView
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Array1DRef<const uint8_t>>
    signature: std::vector<Array1DRef<const uint8_t>> getInputStrips(const DecompressorV8Params&
      mParams, Buffer mInputFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:78,1
    - Dst: resize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:79,1
    - Dst: ByteStream::get
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' ifd'
    - tag
    - ' output'
    argTypes:
    - TiffIFD
    - TiffTag
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: rawspeed::getPanasonicTiffVector
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 3
    functionsReached:
    - resize
    - ByteStream::getU16
    - ByteStream::get
    - getEntry
    linkageType: ''
    returnType: void
    signature: "void getPanasonicTiffVector(const TiffIFD& ifd, TiffTag tag,\n                            std::vector<T>&
      output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rawspeed::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:116,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:117,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:119,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:120,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:122,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:123,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:125,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:126,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:128,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:129,1
    - Dst: std::any_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: begin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:132,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:134,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:138,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: rawspeed::DecompressorV8Params::validate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 3
    functionsReached:
    - size
    - end
    - begin
    - std::numeric_limits<uint16_t>::max
    - std::any_of
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:148,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:150,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:152,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:154,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:156,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:158,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:159,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:167,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:169,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:171,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:173,1
    - Dst: getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:175,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:177,1
    - Dst: rawspeed::DecompressorV8Params::validate
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' ifd'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 181
    functionName: rawspeed::DecompressorV8Params::DecompressorV8Params
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getPanasonicTiffVector
    - rawspeed::DecompressorV8Params::validate
    - getEntry
    linkageType: ''
    returnType: void
    signature: void DecompressorV8Params::DecompressorV8Params(const TiffIFD& ifd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:191,1
    - Dst: rawspeed::getPanasonicTiffVector
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:193,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:200,1
    - Dst: std::all_of
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: std::vector::cend
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:203,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:208,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:213,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' mParams'
    - ' ifd'
    argTypes:
    - DecompressorV8Params
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 219
    functionName: rawspeed::populateGammaLUT
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::getPanasonicTiffVector
    - std::vector::size
    - std::vector::cbegin
    - std::vector::cend
    - ThrowRDE
    - std::all_of
    linkageType: ''
    returnType: void
    signature: void populateGammaLUT(const DecompressorV8Params& mParams, const TiffIFD&
      ifd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:233,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    - Dst: DataBuffer::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mParams'
    - mInputFile
    argTypes:
    - DecompressorV8Params
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: rawspeed::getInputStrips
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer::getAsArray1DRef
    - Buffer::getSubView
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Array1DRef<const uint8_t>>
    signature: std::vector<Array1DRef<const uint8_t>> getInputStrips(const DecompressorV8Params&
      mParams, Buffer mInputFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:244,1
    - Dst: getAsBayerPhase
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:245,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:246,1
    - Dst: populateGammaLUT
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:249,1
    - Dst: getInputStrips
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:251,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:254,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:255,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:256,1
    - Dst: getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:257,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:258,1
    - Dst: PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:260,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:261,1
    - Dst: PanasonicV8Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - TiffIFD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: rawspeed::Rw2Decoder::decodeRawV8
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 1
    functionsReached:
    - getAsBayerPhase
    - getInputStrips
    - populateGammaLUT
    - PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
    - PanasonicV8Decompressor::decompress
    - getEntry
    - ThrowRDE
    - getAsArray1DRef
    - createData
    - rawspeed::Rw2Decoder::parseCFA
    linkageType: ''
    returnType: RawImage
    signature: RawImage Rw2Decoder::decodeRawV8(const TiffIFD& raw) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:270,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:273,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:275,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:277,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:277,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:278,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:278,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:282,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:284,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:287,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:289,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:290,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:291,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:293,1
    - Dst: getSize
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:295,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:300,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:301,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:301,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:303,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:304,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:308,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:309,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:309,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:311,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:312,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:317,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:318,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:319,1
    - Dst: PanasonicV4Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:320,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:323,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:325,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:328,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:331,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:333,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:333,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:336,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:337,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:340,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:343,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:345,1
    - Dst: PanasonicV4Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:346,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:351,1
    - Dst: PanasonicV5Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:352,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:357,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:361,1
    - Dst: PanasonicV6Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:362,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:367,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:370,1
    - Dst: PanasonicV7Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:371,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:378,1
    - Dst: rawspeed::Rw2Decoder::decodeRawV8
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:380,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:383,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 388
    functionName: rawspeed::Rw2Decoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::decodeRawV8
    - hasEntryRecursive
    - getSubView
    - iPoint2D
    - contains
    - getIFDWithTag
    - TiffIFD*::getEntry
    - iRectangle2D
    - createData
    - TiffIFD*::hasEntry
    - DataBuffer
    - PanasonicV4Decompressor::decompress
    - TiffEntry*::getU32
    - ThrowRDE
    - getSize
    - UncompressedDecompressor::decode12BitRawWithControl
    - static_cast<TiffTag>
    - PanasonicV6Decompressor::decompress
    - UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    - isValid
    - PanasonicV5Decompressor::decompress
    - ByteStream
    - PanasonicV7Decompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage Rw2Decoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:391,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:392,1
    - Dst: rawspeed::Rw2Decoder::guessMode
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:392,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: rawspeed::Rw2Decoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::guessMode
    - checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:397,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:398,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:401,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:403,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:404,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:407,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:410,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:410,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:413,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:413,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:416,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:416,1
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:419,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:419,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 424
    functionName: rawspeed::Rw2Decoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 3
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - iPoint2D
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::parseCFA() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:427,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:428,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: rawspeed::Rw2Decoder::getRaw
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 2
    functionsReached:
    - getIFDWithTag
    - hasEntryRecursive
    linkageType: ''
    returnType: TiffIFD
    signature: TiffIFD * Rw2Decoder::getRaw() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:433,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:435,1
    - Dst: rawspeed::Rw2Decoder::guessMode
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:436,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:438,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:439,1
    - Dst: rawspeed::Rw2Decoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:441,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:442,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:445,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:445,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:446,1
    - Dst: rawspeed::Rw2Decoder::getRaw
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:449,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:452,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:452,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:453,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:453,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:454,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:454,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:457,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:461,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:466,1
    - Dst: blackLevelsNeedOffsetting
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:467,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:471,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:472,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:476,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:476,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:477,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:477,1
    - Dst: getBlack
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:478,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:478,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:481,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:481,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:482,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:486,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:489,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:492,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:495,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:498,1
    - Dst: rawspeed::ColorFilterArray::colorToString
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:499,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:506,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:506,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:507,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:507,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:508,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:508,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:510,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:511,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:511,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:512,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:513,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:513,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:514,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:515,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:515,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:517,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:517,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:518,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:518,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:520,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:521,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:521,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:523,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:524,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:524,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 527
    functionName: rawspeed::Rw2Decoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - rawspeed::ColorFilterArray::colorToString
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - cfa::getColorAt
    - rawspeed::Rw2Decoder::checkCameraSupported
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - std::string::c_str
    - rawspeed::Rw2Decoder::getRaw
    - TiffIFD*::getEntry
    - rawspeed::Rw2Decoder::guessMode
    - TiffIFD*::hasEntry
    - getID
    - blackLevelsNeedOffsetting
    - ThrowRDE
    - static_cast<TiffTag>
    - setMetaData
    - rawspeed::Rw2Decoder::parseCFA
    - blackLevelSeparate1D
    - getBlack
    - writeLog
    - Array2DRef
    - __builtin_sadd_overflow
    linkageType: ''
    returnType: void
    signature: void Rw2Decoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isAllocated
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:532,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:535,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:535,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:537,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:540,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:546,1
    - Dst: fabs
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:552,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:557,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: rawspeed::Rw2Decoder::guessMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 4
    functionsReached:
    - std::string::c_str
    - isAllocated
    - writeLog
    - fabs
    - static_cast<float>
    linkageType: ''
    returnType: std::string
    signature: std::string Rw2Decoder::guessMode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Rw2Decoder::getRaw
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:562,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:563,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:564,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:565,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:566,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:568,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:570,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:572,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:574,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:581,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:582,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:583,1
    - Dst: static_cast<unsigned int>
      Src: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp:584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 585
    functionName: rawspeed::Rw2Decoder::getDefaultCrop
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Rw2Decoder::getRaw
    - static_cast<unsigned int>
    - TiffIFD*::getEntry
    - ThrowRDE
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: rawspeed::iRectangle2D
    signature: rawspeed::iRectangle2D Rw2Decoder::getDefaultCrop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::MrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: rawspeed::MrwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed::SimpleTiffDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder::anchor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:40,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:41,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:42,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:43,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:44,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:47,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:50,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:53,1
    - Dst: checkImageDimensions
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:55,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp
    functionUses: 4
    functionsReached:
    - getIFDWithLargestImage
    - getEntry
    - checkImageDimensions
    - ThrowRDE
    - iPoint2D
    - isValid
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder::prepareForRawDecoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rawspeed::SimpleTiffDecoder::anchor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder::anchor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithLargestImage
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:40,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:41,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:42,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:43,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:44,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:46,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:47,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:50,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:53,1
    - Dst: checkImageDimensions
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:55,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp
    functionUses: 4
    functionsReached:
    - getIFDWithLargestImage
    - getEntry
    - checkImageDimensions
    - ThrowRDE
    - iPoint2D
    - isValid
    linkageType: ''
    returnType: void
    signature: void SimpleTiffDecoder::prepareForRawDecoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::DngDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::DngDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: rawspeed::SrwDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool SrwDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:57,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:67,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:69,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:71,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:74,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:74,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:76,1
    - Dst: rawspeed::SrwDecoder::decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:77,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:81,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:82,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:83,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:86,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:88,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:91,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:92,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:95,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:96,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:101,1
    - Dst: SamsungV0Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:103,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:108,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:109,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:111,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:111,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:115,1
    - Dst: SamsungV1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:117,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:122,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:125,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:125,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:129,1
    - Dst: SamsungV2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:135,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 136
    functionName: rawspeed::SrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - SamsungV1Decompressor::decompress
    - ByteStream::getStream
    - DataBuffer
    - getIFDWithTag
    - SamsungV2Decompressor::decompress
    - TiffEntry*::getU32
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::SrwDecoder::decodeUncompressed
    - getSubView
    - auto*::getEntry
    - get
    - createData
    - static_cast<TiffTag>
    - iPoint2D
    - auto*::hasEntry
    - SamsungV0Decompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage SrwDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:140,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:142,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:142,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: rawspeed::SrwDecoder::getMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDsWithTag
    - hasEntryRecursive
    - getEntryRecursive
    - std::vector::empty
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string SrwDecoder::getMode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:151,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:152,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:153,1
    - Dst: rawspeed::SrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:154,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:154,1
    - Dst: rawspeed::SrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: rawspeed::SrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SrwDecoder::checkCameraSupported
    - getID
    - CameraMetaData*::hasCamera
    - rawspeed::SrwDecoder::getMode
    linkageType: ''
    returnType: void
    signature: void SrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:161,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:162,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:164,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:165,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:165,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:166,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:168,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:171,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:172,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:174,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:176,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:179,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:179,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:180,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:180,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:181,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: rawspeed::SrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - CameraMetaData*::hasCamera
    - rawspeed::SrwDecoder::getMode
    - getEntryRecursive
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void SrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: rawspeed::SrwDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool SrwDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:57,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:60,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:63,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:67,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:69,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:71,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:74,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:74,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:76,1
    - Dst: rawspeed::SrwDecoder::decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:77,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:81,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:82,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:83,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:86,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:86,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:88,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:91,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:91,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:92,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:94,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:95,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:96,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:101,1
    - Dst: SamsungV0Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:103,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:108,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:109,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:111,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:111,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:115,1
    - Dst: SamsungV1Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:117,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:122,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:123,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:125,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:125,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:129,1
    - Dst: SamsungV2Decompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:131,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:135,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 136
    functionName: rawspeed::SrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - SamsungV1Decompressor::decompress
    - ByteStream::getStream
    - DataBuffer
    - getIFDWithTag
    - SamsungV2Decompressor::decompress
    - TiffEntry*::getU32
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::SrwDecoder::decodeUncompressed
    - getSubView
    - auto*::getEntry
    - get
    - createData
    - static_cast<TiffTag>
    - iPoint2D
    - auto*::hasEntry
    - SamsungV0Decompressor::decompress
    linkageType: ''
    returnType: RawImage
    signature: RawImage SrwDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:140,1
    - Dst: std::vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:142,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:142,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: rawspeed::SrwDecoder::getMode
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 2
    functionsReached:
    - getIFDsWithTag
    - hasEntryRecursive
    - getEntryRecursive
    - std::vector::empty
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string SrwDecoder::getMode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:151,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:152,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:153,1
    - Dst: rawspeed::SrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:154,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:154,1
    - Dst: rawspeed::SrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: rawspeed::SrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::SrwDecoder::checkCameraSupported
    - getID
    - CameraMetaData*::hasCamera
    - rawspeed::SrwDecoder::getMode
    linkageType: ''
    returnType: void
    signature: void SrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:161,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:162,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:164,1
    - Dst: rawspeed::SrwDecoder::getMode
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:165,1
    - Dst: CameraMetaData*::hasCamera
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:165,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:166,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:168,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:171,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:172,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:174,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:176,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:179,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:179,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:180,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:180,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:181,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: rawspeed::SrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - CameraMetaData*::hasCamera
    - rawspeed::SrwDecoder::getMode
    - getEntryRecursive
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void SrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: rawspeed::Cr2Decoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool Cr2Decoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:71,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:73,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:76,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:78,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:80,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:83,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:83,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:84,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:85,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:86,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:98,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:98,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:104,1
    - Dst: Cr2LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:105,1
    - Dst: Cr2LJpegDecoder::getSamplePrecision
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:106,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:110,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:110,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:112,1
    - Dst: sixteenBitLookup
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 121
    functionName: rawspeed::Cr2Decoder::decodeOldFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU16
    - DataBuffer
    - Cr2LJpegDecoder::getSamplePrecision
    - getIFDWithTag
    - TiffEntry*::getU16Array
    - sixteenBitLookup
    - ThrowRDE
    - ByteStream::skipBytes
    - getEntryRecursive
    - getSubView
    - auto*::getEntry
    - Cr2LJpegDecoder::decode
    - createData
    - static_cast<TiffTag>
    - auto*::hasEntry
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeOldFormat()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:127,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:129,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:131,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:133,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:133,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:134,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:136,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:136,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:137,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:138,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:140,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:147,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:151,1
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:157,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:157,1
    - Dst: TiffIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:170,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:173,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:177,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:177,1
    - Dst: Cr2SliceWidths
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:179,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:179,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:180,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:181,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:182,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:182,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:183,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:186,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:187,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:187,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:188,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:192,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:193,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:196,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:196,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:199,1
    - Dst: Cr2LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:200,1
    - Dst: Cr2LJpegDecoder::getSamplePrecision
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:201,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:203,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:203,1
    - Dst: rawspeed::Cr2Decoder::sRawInterpolate
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:206,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sensorInfoE != nullptr)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    - condition: (getSubSampling() == mRaw->metadata.subsampling)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 209
    functionName: rawspeed::Cr2Decoder::decodeNewFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - getEntryRecursive
    - rawspeed::Cr2Decoder::getSubSampling
    - getSubView
    - get
    - TiffIFD*::getEntryRecursive
    - getSubIFDs
    - TiffEntry*::getU16
    - rawspeed::Cr2Decoder::isSubSampled
    - ThrowTPE
    - TiffIFD*::getEntry
    - createData
    - DataBuffer
    - rawspeed::Cr2Decoder::sRawInterpolate
    - ThrowRDE
    - assert
    - Cr2LJpegDecoder::decode
    - Cr2LJpegDecoder::getSamplePrecision
    - Cr2SliceWidths
    - setCpp
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeNewFormat()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:212,1
    - Dst: rawspeed::Cr2Decoder::decodeOldFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:213,1
    - Dst: rawspeed::Cr2Decoder::decodeNewFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: rawspeed::Cr2Decoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decoder::decodeNewFormat
    - rawspeed::Cr2Decoder::decodeOldFormat
    - getSubIFDs
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:219,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:221,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:222,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: rawspeed::Cr2Decoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - checkCameraSupported
    - getID
    - rawspeed::Cr2Decoder::isSubSampled
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - ccd
    argTypes:
    - TiffEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 289
    functionName: rawspeed::deduceColorDataFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - TiffEntry*::getU16
    linkageType: ''
    returnType: Optional<std::pair<ColorDataFormat, Optional<int>>>
    signature: Optional<std::pair<ColorDataFormat, Optional<int>>> deduceColorDataFormat(const
      TiffEntry* ccd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - ColorDataFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: rawspeed::getWhiteBalanceOffsetInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getWhiteBalanceOffsetInColorData(ColorDataFormat f)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:334,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:343,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:350,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:359,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:370,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 374
    functionName: rawspeed::getBlackAndWhiteLevelOffsetsInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: Optional<std::pair<int, int>>
    signature: "Optional<std::pair<int, int>> getBlackAndWhiteLevelOffsetsInColorData(ColorDataFormat
      f,\n                                        Optional<int> colorDataVersion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::shouldRescaleBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool shouldRescaleBlackLevels(ColorDataFormat f,\n                                            Optional<int>
      colorDataVersion)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - ccd
    argTypes:
    - TiffEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 289
    functionName: rawspeed::deduceColorDataFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - TiffEntry*::getU16
    linkageType: ''
    returnType: Optional<std::pair<ColorDataFormat, Optional<int>>>
    signature: Optional<std::pair<ColorDataFormat, Optional<int>>> deduceColorDataFormat(const
      TiffEntry* ccd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - ColorDataFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: rawspeed::getWhiteBalanceOffsetInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getWhiteBalanceOffsetInColorData(ColorDataFormat f)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:334,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:343,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:350,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:359,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:370,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 374
    functionName: rawspeed::getBlackAndWhiteLevelOffsetsInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: Optional<std::pair<int, int>>
    signature: "Optional<std::pair<int, int>> getBlackAndWhiteLevelOffsetsInColorData(ColorDataFormat
      f,\n                                        Optional<int> colorDataVersion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::shouldRescaleBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool shouldRescaleBlackLevels(ColorDataFormat f,\n                                            Optional<int>
      colorDataVersion)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:384,1
    - Dst: deduceColorDataFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:388,1
    - Dst: getWhiteBalanceOffsetInColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:394,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:399,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:399,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:400,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:400,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:401,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:401,1
    - Dst: getBlackAndWhiteLevelOffsetsInColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:404,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:408,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:411,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:411,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:412,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:414,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:414,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:421,1
    - Dst: shouldRescaleBlackLevels
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:422,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bitDepthDiff >= 1 && bitDepthDiff <= 12)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 430
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 430
    functionName: rawspeed::Cr2Decoder::decodeCanonColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getU16
    - getBlackAndWhiteLevelOffsetsInColorData
    - blackLevelSeparateStorage::data
    - getWhiteBalanceOffsetInColorData
    - Array2DRef
    - deduceColorDataFormat
    - getEntryRecursive
    - assert
    - shouldRescaleBlackLevels
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: bool
    signature: bool Cr2Decoder::decodeCanonColorData() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decoder::decodeCanonColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:436,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:439,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:440,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:442,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:444,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:446,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:448,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:453,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:453,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:454,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:454,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:455,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:455,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:457,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:457,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:459,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:459,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:462,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:462,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:465,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:466,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 471
    functionName: rawspeed::Cr2Decoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getU16
    - std::string_view
    - hasEntryRecursive
    - TiffEntry*::getFloat
    - TiffEntry*::getU32
    - rawspeed::Cr2Decoder::decodeCanonColorData
    - getEntryRecursive
    - static_cast<TiffTag>
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::parseWhiteBalance() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:475,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:475,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:486,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:487,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:491,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:492,1
    - Dst: rawspeed::Cr2Decoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:498,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:500,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:500,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:503,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:504,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts:
    - condition: (mShiftUpScaleForExif == 0 || mShiftUpScaleForExif == 2)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 513
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 513
    functionName: rawspeed::Cr2Decoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decoder::parseWhiteBalance
    - isPowerOfTwo
    - hasEntryRecursive
    - setError
    - getEntryRecursive
    - assert
    - cfa::setCFA
    - iPoint2D
    - what
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:516,1
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:519,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:519,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: rawspeed::Cr2Decoder::isSubSampled
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 2
    functionsReached:
    - getEntryRecursive
    - getSubIFDs
    - TiffEntry*::getU32
    linkageType: ''
    returnType: bool
    signature: bool Cr2Decoder::isSubSampled() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:525,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:527,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:530,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:535,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 545
    functionName: rawspeed::Cr2Decoder::getSubSampling
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - ThrowRDE
    - getEntryRecursive
    - TiffEntry*::getU16
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D Cr2Decoder::getSubSampling() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:548,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:551,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:551,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:555,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:555,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: rawspeed::Cr2Decoder::getHue
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - contains
    - getEntryRecursive
    - static_cast<TiffTag>
    - hasEntryRecursive
    linkageType: ''
    returnType: int
    signature: int Cr2Decoder::getHue() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:568,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:570,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:577,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:578,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:579,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:579,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:580,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:582,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:583,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:584,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:585,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:586,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:589,1
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:589,1
    - Dst: rawspeed::Cr2Decoder::getHue
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:591,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:600,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:604,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:608,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:609,1
    - Dst: Cr2sRawInterpolator::interpolate
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (wb != nullptr)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 625
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 625
    functionName: rawspeed::Cr2Decoder::sRawInterpolate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - rawspeed::RawImage::create
    - TiffEntry*::getU16
    - RawImage::getU16DataAsUncroppedArray2DRef
    - rawspeed::MSan::CheckMemIsInitialized
    - ThrowRDE
    - assert
    - getEntryRecursive
    - Cr2sRawInterpolator::interpolate
    - static_cast<int>
    - getByteDataAsUncroppedArray2DRef
    - static_cast<float>
    - rawspeed::Cr2Decoder::getHue
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::sRawInterpolate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: rawspeed::Cr2Decoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool Cr2Decoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:71,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:73,1
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:76,1
    - Dst: auto*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:77,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:78,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:80,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:83,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:83,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:84,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:85,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:86,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:98,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:98,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:101,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:104,1
    - Dst: Cr2LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:105,1
    - Dst: Cr2LJpegDecoder::getSamplePrecision
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:106,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:110,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:110,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:112,1
    - Dst: sixteenBitLookup
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 121
    functionName: rawspeed::Cr2Decoder::decodeOldFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - DataBuffer
    - Cr2LJpegDecoder::getSamplePrecision
    - getIFDWithTag
    - TiffEntry*::getU16Array
    - sixteenBitLookup
    - ThrowRDE
    - ByteStream::skipBytes
    - getEntryRecursive
    - getSubView
    - auto*::getEntry
    - Cr2LJpegDecoder::decode
    - createData
    - static_cast<TiffTag>
    - auto*::hasEntry
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeOldFormat()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:127,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:129,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:131,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:133,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:133,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:134,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:136,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:136,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:137,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:138,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:140,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:142,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:147,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:151,1
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:157,1
    - Dst: get
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:157,1
    - Dst: TiffIFD*::getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:170,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:173,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:177,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:177,1
    - Dst: Cr2SliceWidths
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:179,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:179,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:180,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:181,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:182,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:182,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:183,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:186,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:187,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:187,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:188,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:192,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:193,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:196,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:196,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:199,1
    - Dst: Cr2LJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:200,1
    - Dst: Cr2LJpegDecoder::getSamplePrecision
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:201,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:203,1
    - Dst: rawspeed::Cr2Decoder::getSubSampling
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:203,1
    - Dst: rawspeed::Cr2Decoder::sRawInterpolate
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:206,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sensorInfoE != nullptr)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    - condition: (getSubSampling() == mRaw->metadata.subsampling)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 209
    functionName: rawspeed::Cr2Decoder::decodeNewFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - getEntryRecursive
    - rawspeed::Cr2Decoder::getSubSampling
    - getSubView
    - get
    - TiffIFD*::getEntryRecursive
    - getSubIFDs
    - TiffEntry*::getU16
    - rawspeed::Cr2Decoder::isSubSampled
    - ThrowTPE
    - TiffIFD*::getEntry
    - createData
    - DataBuffer
    - rawspeed::Cr2Decoder::sRawInterpolate
    - ThrowRDE
    - assert
    - Cr2LJpegDecoder::decode
    - Cr2LJpegDecoder::getSamplePrecision
    - Cr2SliceWidths
    - setCpp
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeNewFormat()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:212,1
    - Dst: rawspeed::Cr2Decoder::decodeOldFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:213,1
    - Dst: rawspeed::Cr2Decoder::decodeNewFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: rawspeed::Cr2Decoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decoder::decodeNewFormat
    - rawspeed::Cr2Decoder::decodeOldFormat
    - getSubIFDs
    linkageType: ''
    returnType: RawImage
    signature: RawImage Cr2Decoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:219,1
    - Dst: rawspeed::Cr2Decoder::isSubSampled
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:221,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:222,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: rawspeed::Cr2Decoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - checkCameraSupported
    - getID
    - rawspeed::Cr2Decoder::isSubSampled
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - ccd
    argTypes:
    - TiffEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 289
    functionName: rawspeed::deduceColorDataFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - TiffEntry*::getU16
    linkageType: ''
    returnType: Optional<std::pair<ColorDataFormat, Optional<int>>>
    signature: Optional<std::pair<ColorDataFormat, Optional<int>>> deduceColorDataFormat(const
      TiffEntry* ccd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - ColorDataFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: rawspeed::getWhiteBalanceOffsetInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getWhiteBalanceOffsetInColorData(ColorDataFormat f)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:334,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:343,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:350,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:359,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:370,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 374
    functionName: rawspeed::getBlackAndWhiteLevelOffsetsInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: Optional<std::pair<int, int>>
    signature: "Optional<std::pair<int, int>> getBlackAndWhiteLevelOffsetsInColorData(ColorDataFormat
      f,\n                                        Optional<int> colorDataVersion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::shouldRescaleBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool shouldRescaleBlackLevels(ColorDataFormat f,\n                                            Optional<int>
      colorDataVersion)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - ccd
    argTypes:
    - TiffEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 289
    functionName: rawspeed::deduceColorDataFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - TiffEntry*::getU16
    linkageType: ''
    returnType: Optional<std::pair<ColorDataFormat, Optional<int>>>
    signature: Optional<std::pair<ColorDataFormat, Optional<int>>> deduceColorDataFormat(const
      TiffEntry* ccd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - ColorDataFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: rawspeed::getWhiteBalanceOffsetInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: int
    signature: int getWhiteBalanceOffsetInColorData(ColorDataFormat f)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:334,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:343,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:350,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:359,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:370,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 374
    functionName: rawspeed::getBlackAndWhiteLevelOffsetsInColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - __builtin_unreachable
    linkageType: ''
    returnType: Optional<std::pair<int, int>>
    signature: "Optional<std::pair<int, int>> getBlackAndWhiteLevelOffsetsInColorData(ColorDataFormat
      f,\n                                        Optional<int> colorDataVersion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - colorDataVersion
    argTypes:
    - ColorDataFormat
    - Optional<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: rawspeed::shouldRescaleBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool shouldRescaleBlackLevels(ColorDataFormat f,\n                                            Optional<int>
      colorDataVersion)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:384,1
    - Dst: deduceColorDataFormat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:388,1
    - Dst: getWhiteBalanceOffsetInColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:394,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:399,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:399,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:400,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:400,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:401,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:401,1
    - Dst: getBlackAndWhiteLevelOffsetsInColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:404,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:408,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:411,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:411,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:412,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:414,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:414,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:421,1
    - Dst: shouldRescaleBlackLevels
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:422,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bitDepthDiff >= 1 && bitDepthDiff <= 12)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 430
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 430
    functionName: rawspeed::Cr2Decoder::decodeCanonColorData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - TiffEntry*::getU16
    - getBlackAndWhiteLevelOffsetsInColorData
    - blackLevelSeparateStorage::data
    - getWhiteBalanceOffsetInColorData
    - Array2DRef
    - deduceColorDataFormat
    - getEntryRecursive
    - assert
    - shouldRescaleBlackLevels
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - blackLevelSeparate1D
    linkageType: ''
    returnType: bool
    signature: bool Cr2Decoder::decodeCanonColorData() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Cr2Decoder::decodeCanonColorData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:436,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:439,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:440,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:442,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:444,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:446,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:448,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:453,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:453,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:454,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:454,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:455,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:455,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:457,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:457,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:459,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:459,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:462,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:462,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:465,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:466,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 471
    functionName: rawspeed::Cr2Decoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - TiffEntry*::getU16
    - std::string_view
    - hasEntryRecursive
    - TiffEntry*::getFloat
    - TiffEntry*::getU32
    - rawspeed::Cr2Decoder::decodeCanonColorData
    - getEntryRecursive
    - static_cast<TiffTag>
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::parseWhiteBalance() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:475,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:475,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:486,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:487,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:491,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:492,1
    - Dst: rawspeed::Cr2Decoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:498,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:500,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:500,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:503,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:504,1
    - Dst: isPowerOfTwo
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts:
    - condition: (mShiftUpScaleForExif == 0 || mShiftUpScaleForExif == 2)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 513
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 513
    functionName: rawspeed::Cr2Decoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Cr2Decoder::parseWhiteBalance
    - isPowerOfTwo
    - hasEntryRecursive
    - setError
    - getEntryRecursive
    - assert
    - cfa::setCFA
    - iPoint2D
    - what
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:516,1
    - Dst: getSubIFDs
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:519,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:519,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: rawspeed::Cr2Decoder::isSubSampled
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 4
    functionsReached:
    - getEntryRecursive
    - getSubIFDs
    - TiffEntry*::getU32
    linkageType: ''
    returnType: bool
    signature: bool Cr2Decoder::isSubSampled() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:525,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:527,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:530,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:535,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 545
    functionName: rawspeed::Cr2Decoder::getSubSampling
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 2
    functionsReached:
    - ThrowRDE
    - getEntryRecursive
    - TiffEntry*::getU16
    linkageType: ''
    returnType: iPoint2D
    signature: iPoint2D Cr2Decoder::getSubSampling() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:548,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:551,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:551,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:555,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:555,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: rawspeed::Cr2Decoder::getHue
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 1
    functionsReached:
    - contains
    - getEntryRecursive
    - static_cast<TiffTag>
    - hasEntryRecursive
    linkageType: ''
    returnType: int
    signature: int Cr2Decoder::getHue() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:568,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:570,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:577,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:578,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:579,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:579,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:580,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:582,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:583,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:584,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:585,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:586,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:589,1
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:589,1
    - Dst: rawspeed::Cr2Decoder::getHue
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:591,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:600,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:604,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:608,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:609,1
    - Dst: Cr2sRawInterpolator::interpolate
      Src: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (wb != nullptr)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    constantsTouched: []
    func_position:
      end: 625
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 625
    functionName: rawspeed::Cr2Decoder::sRawInterpolate
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    functionUses: 2
    functionsReached:
    - contains
    - rawspeed::RawImage::create
    - TiffEntry*::getU16
    - RawImage::getU16DataAsUncroppedArray2DRef
    - rawspeed::MSan::CheckMemIsInitialized
    - ThrowRDE
    - assert
    - getEntryRecursive
    - Cr2sRawInterpolator::interpolate
    - static_cast<int>
    - getByteDataAsUncroppedArray2DRef
    - static_cast<float>
    - rawspeed::Cr2Decoder::getHue
    linkageType: ''
    returnType: void
    signature: void Cr2Decoder::sRawInterpolate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: rawspeed::ThreefrDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ThreefrDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                         [[maybe_unused]] Buffer file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:57,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:58,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:60,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:62,1
    - Dst: rawspeed::ThreefrDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:70,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:72,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:76,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:76,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:79,1
    - Dst: HasselbladLJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: rawspeed::ThreefrDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ThreefrDecoder::DecodeUncompressed
    - DataBuffer
    - getIFDWithTag
    - ThrowRDE
    - getSubView
    - auto*::getEntry
    - HasselbladLJpegDecoder::decode
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage ThreefrDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:88,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:90,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:91,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:91,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:94,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:96,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:100,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:102,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:105,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:105,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:107,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:109,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: rawspeed::ThreefrDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 1
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - DataBuffer
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - getDataType
    - getCpp
    - iRectangle2D
    - createData
    - UncompressedDecompressor::readUncompressedRaw
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:114,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:114,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:117,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:119,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:120,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:122,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:122,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:125,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:126,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:128,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:128,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:132,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:133,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: rawspeed::ThreefrDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - implicit_cast<int>
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - iPoint2D
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: rawspeed::ThreefrDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ThreefrDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                         [[maybe_unused]] Buffer file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:57,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:58,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:59,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:60,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:62,1
    - Dst: rawspeed::ThreefrDecoder::DecodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:65,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:70,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:72,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:76,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:76,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:79,1
    - Dst: HasselbladLJpegDecoder::decode
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: rawspeed::ThreefrDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ThreefrDecoder::DecodeUncompressed
    - DataBuffer
    - getIFDWithTag
    - ThrowRDE
    - getSubView
    - auto*::getEntry
    - HasselbladLJpegDecoder::decode
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage ThreefrDecoder::decodeRawInternal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:87,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:88,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:90,1
    - Dst: getBpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:91,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:91,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:94,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:96,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:100,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:102,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:105,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:105,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:107,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:109,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: rawspeed::ThreefrDecoder::DecodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 2
    functionsReached:
    - getBpp
    - dim::hasPositiveArea
    - DataBuffer
    - TiffIFD*::getEntry
    - ThrowRDE
    - getSubView
    - getDataType
    - getCpp
    - iRectangle2D
    - createData
    - UncompressedDecompressor::readUncompressedRaw
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder::DecodeUncompressed(const TiffIFD* raw) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfa::setCFA
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:114,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:114,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:117,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:119,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:120,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:122,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:122,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:125,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:126,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:128,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:128,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:132,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:133,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: rawspeed::ThreefrDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - implicit_cast<int>
    - ThrowRDE
    - getEntryRecursive
    - cfa::setCFA
    - iPoint2D
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MrwDecoder::parseHeader
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MrwDecoder::MrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::MrwDecoder::parseHeader
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::MrwDecoder(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:49,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:49,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: rawspeed::MrwDecoder::isMRW
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: int
    signature: int MrwDecoder::isMRW(Buffer input)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MrwDecoder::isMRW
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:55,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:61,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:64,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:65,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:69,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:69,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:72,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:73,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:77,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:78,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:81,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:83,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:88,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:89,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:93,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:97,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:98,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:105,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:108,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:112,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:116,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:118,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:119,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:120,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:126,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:126,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:129,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:133,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:133,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:148,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:153,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:154,1
    - Dst: DataBuffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:156,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:156,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (imageBits % 8 == 0)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    - condition: (bs.getPosition() == 8)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    - condition: (imageBits > 0)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 157
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 157
    functionName: rawspeed::MrwDecoder::parseHeader
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - rawspeed::TiffParser::parse
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getPosition
    - ByteStream::setPosition
    - static_cast<float>
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::MrwDecoder::isMRW
    - assert
    - ByteStream::getRemainSize
    - ByteStream::getSubStream
    - ByteStream::check
    - DataBuffer::getSubView
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::parseHeader()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:160,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:167,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:167,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:169,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:170,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:173,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:173,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:175,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: rawspeed::MrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - createData
    - iPoint2D
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage MrwDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:184,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:186,1
    - Dst: rawspeed::MrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: rawspeed::MrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::MrwDecoder::checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:195,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:197,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:198,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: rawspeed::MrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - setMetaData
    - getID
    - contains
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MrwDecoder::parseHeader
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MrwDecoder::MrwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::MrwDecoder::parseHeader
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::MrwDecoder(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Buffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:49,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:49,1
    - Dst: memcmp
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: Buffer::begin
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: rawspeed::MrwDecoder::isMRW
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 3
    functionsReached:
    - std::array::size
    - Buffer::getSubView
    - memcmp
    - std::array::data
    - Buffer::begin
    linkageType: ''
    returnType: int
    signature: int MrwDecoder::isMRW(Buffer input)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MrwDecoder::isMRW
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:54,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:55,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:61,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:64,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:65,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:69,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:69,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:72,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:73,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:77,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:78,1
    - Dst: ByteStream::check
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:79,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:81,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:83,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:88,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:89,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:90,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:93,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:97,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:98,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:100,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:102,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:105,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:107,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:108,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:110,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:112,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:116,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:118,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:119,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:120,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:126,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:126,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:129,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:133,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:133,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:144,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:148,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:153,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:154,1
    - Dst: DataBuffer::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:156,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:156,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (imageBits % 8 == 0)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    - condition: (bs.getPosition() == 8)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    - condition: (imageBits > 0)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    constantsTouched: []
    func_position:
      end: 157
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 157
    functionName: rawspeed::MrwDecoder::parseHeader
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU16
    - rawspeed::TiffParser::parse
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getPosition
    - ByteStream::setPosition
    - static_cast<float>
    - ByteStream::getByte
    - ThrowRDE
    - ByteStream::skipBytes
    - rawspeed::MrwDecoder::isMRW
    - assert
    - ByteStream::getRemainSize
    - ByteStream::getSubStream
    - ByteStream::check
    - DataBuffer::getSubView
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::parseHeader()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:160,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:167,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:167,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:169,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:170,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:173,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:173,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:175,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: rawspeed::MrwDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - createData
    - iPoint2D
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage MrwDecoder::decodeRawInternal()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:184,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:186,1
    - Dst: rawspeed::MrwDecoder::checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: rawspeed::MrwDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - rawspeed::MrwDecoder::checkCameraSupported
    - getID
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:195,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:197,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:198,1
    - Dst: contains
      Src: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: rawspeed::MrwDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    - setMetaData
    - getID
    - contains
    linkageType: ''
    returnType: void
    signature: void MrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::OrfDecoder::OrfDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OrfDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::OrfDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::OrfDecoder::OrfDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void OrfDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::OrfDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowRDE
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.h
    functionUses: 394
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRDE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ThrowRDE
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.h
    functionUses: 394
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThrowRDE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: rawspeed::MefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool MefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rawspeed::MefDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void MefDecoder::checkImageDimensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:53,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:57,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:57,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:59,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: rawspeed::MefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage MefDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::MefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void MefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: rawspeed::MefDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool MefDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rawspeed::MefDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void MefDecoder::checkImageDimensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:53,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:56,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:57,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:57,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:59,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: rawspeed::MefDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - getSubView
    - UncompressedDecompressor::readUncompressedRaw
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage MefDecoder::decodeRawInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: rawspeed::MefDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void MefDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MosDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MosDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/MosDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: rawspeed::RAWSPEED_READONLY::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::hasEntryRecursive
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY DngDecoder::isAppropriateDecoder(\n    const
      TiffRootIFD* rootIFD, [[maybe_unused]] Buffer file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:67,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:69,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:75,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:76,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:76,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:77,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: rawspeed::DngDecoder::DngDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - hasEntryRecursive
    - ThrowRDE
    - getEntryRecursive
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void DngDecoder::DngDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<const TiffIFD*>*::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:88,1
    - Dst: std::vector<const TiffIFD*>*::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:88,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:91,1
    - Dst: hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:95,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:96,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:98,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:130,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:139,1
    - Dst: std::vector<const TiffIFD*>*::erase
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<const TiffIFD*>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 154
    functionName: rawspeed::DngDecoder::dropUnsuportedChunks
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::vector<const TiffIFD*>*::end
    - std::vector<const TiffIFD*>*::erase
    - getEntry
    - writeLog
    - hasEntry
    - std::vector<const TiffIFD*>*::begin
    linkageType: ''
    returnType: void
    signature: void DngDecoder::dropUnsuportedChunks(std::vector<const TiffIFD*>*
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:157,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:160,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:162,1
    - Dst: TiffEntry*::getU32Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:166,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:172,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:173,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:175,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:177,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:177,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:178,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:178,1
    - Dst: iRectangle2D::setTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:182,1
    - Dst: iRectangle2D::setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:183,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:184,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (fullImage.isThisInside(fullImage))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 187
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 187
    functionName: rawspeed::DngDecoder::parseACTIVEAREA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - iRectangle2D::setBottomRightAbsolute
    - iRectangle2D::isThisInside
    - TiffIFD*::getEntry
    - iRectangle2D::getTopLeft
    - iRectangle2D::isPointInsideInclusive
    - ThrowRDE
    - assert
    - iRectangle2D::getBottomRight
    - TiffEntry*::getU32Array
    - iRectangle2D::setTopLeft
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: Optional<iRectangle2D>
    signature: Optional<iRectangle2D> DngDecoder::parseACTIVEAREA(const TiffIFD* raw)
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 210
    functionName: rawspeed::getDNGCFAPatternAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getDNGCFAPatternAsCFAColor(uint32_t c)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 210
    functionName: rawspeed::getDNGCFAPatternAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getDNGCFAPatternAsCFAColor(uint32_t c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:216,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:217,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:218,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:222,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:225,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:227,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:229,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:229,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:230,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:230,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:231,1
    - Dst: cfa::setSize
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:236,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:240,1
    - Dst: getDNGCFAPatternAsCFAColor
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:242,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:244,1
    - Dst: cfa::setColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:246,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:246,1
    - Dst: rawspeed::DngDecoder::parseACTIVEAREA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:253,1
    - Dst: cfa::shiftRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:259,1
    - Dst: cfa::shiftDown
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 261
    functionName: rawspeed::DngDecoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - cfa::setSize
    - iPoint2D::area
    - cfa::shiftRight
    - cfa::setColorAt
    - TiffIFD*::getEntry
    - TiffEntry*::getByte
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::DngDecoder::parseACTIVEAREA
    - getDNGCFAPatternAsCFAColor
    - iPoint2D
    - iPoint2D::hasPositiveArea
    - TiffIFD*::hasEntry
    - cfa::shiftDown
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseCFA(const TiffIFD* raw) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:267,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:269,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:270,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:271,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:273,1
    - Dst: impl
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:277,1
    - Dst: impl
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:279,1
    - Dst: TiffEntry*::getSRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:287,1
    - Dst: metadata::colorMatrix::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:289,1
    - Dst: metadata::colorMatrix::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:294,1
    - Dst: metadata::colorMatrix::clear
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 298
    functionName: rawspeed::DngDecoder::parseColorMatrix
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - metadata::colorMatrix::reserve
    - metadata::colorMatrix::clear
    - TiffEntry*::getU16
    - hasEntryRecursive
    - metadata::colorMatrix::emplace_back
    - impl
    - getEntryRecursive
    - TiffEntry*::getSRationalArray
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseColorMatrix() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:302,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:303,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:304,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:307,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:309,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:311,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:311,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:313,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:315,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:317,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:317,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:319,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:321,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:322,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:324,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:331,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:339,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:340,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:343,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:348,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:349,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:353,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:354,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:358,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (tilew > 0)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (tileh > 0)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 359
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 359
    functionName: rawspeed::DngDecoder::getTilingDescription
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffIFD*::getEntry
    - implicit_cast<uint32_t>
    - ThrowRDE
    - assert
    - roundUpDivisionSafe
    - TiffIFD*::hasEntry
    - static_cast<uint32_t>
    linkageType: ''
    returnType: DngTilingDescription
    signature: DngTilingDescription DngDecoder::getTilingDescription(const TiffIFD*
      raw) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:363,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:367,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:372,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:373,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:375,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:377,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:378,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:397,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:398,1
    - Dst: TiffEntry*::isInt
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:399,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:400,1
    - Dst: rawspeed::DngDecoder::getTilingDescription
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:403,1
    - Dst: AbstractDngDecompressor::slices::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:406,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:410,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:411,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:412,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:414,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:415,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:417,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:418,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:422,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:423,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:426,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:428,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:428,1
    - Dst: rootBuffer::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:429,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:431,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:432,1
    - Dst: AbstractDngDecompressor::slices::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:434,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:437,1
    - Dst: AbstractDngDecompressor::slices::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:437,1
    - Dst: AbstractDngDecompressor::slices::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:438,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:439,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:443,1
    - Dst: AbstractDngDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:445,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - raw
    - sample_format
    argTypes:
    - TiffIFD*
    - uint32_t
    assertStmts:
    - condition: (slices.slices.size() == slices.dsc.numTiles)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (slices.dsc.numTiles == offsets->count)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (slices.dsc.numTiles == counts->count)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 446
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 446
    functionName: rawspeed::DngDecoder::decodeData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - NORangesSet::insert
    - rootBuffer::getByteOrder
    - getSubView
    - getDataType
    - ThrowTPE
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - createData
    - AbstractDngDecompressor::slices::size
    - TiffIFD*::hasEntry
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - AbstractDngDecompressor::decompress
    - rawspeed::DngDecoder::getTilingDescription
    - TiffEntry*::isInt
    - AbstractDngDecompressor::slices::emplace_back
    - AbstractDngDecompressor::slices::reserve
    - AbstractDngDecompressor::slices::empty
    linkageType: ''
    returnType: void
    signature: void DngDecoder::decodeData(const TiffIFD* raw, uint32_t sample_format)
      const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:449,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:451,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:452,1
    - Dst: rawspeed::DngDecoder::dropUnsuportedChunks
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:454,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:456,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:457,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:459,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:460,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:466,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:468,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:471,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:472,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:474,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:478,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:481,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:484,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:490,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:493,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:495,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:499,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:502,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:504,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:505,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:507,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:508,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:513,1
    - Dst: rawspeed::DngDecoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:519,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:521,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:524,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:526,1
    - Dst: rawspeed::DngDecoder::decodeData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:529,1
    - Dst: rawspeed::DngDecoder::handleMetadata
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:531,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 534
    functionName: rawspeed::DngDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - getIFDsWithTag
    - dim::hasPositiveArea
    - vector::size
    - TiffIFD*::getEntry
    - writeLog
    - vector::empty
    - ThrowRDE
    - rawspeed::DngDecoder::decodeData
    - setCpp
    - rawspeed::DngDecoder::handleMetadata
    - rawspeed::DngDecoder::parseCFA
    - rawspeed::DngDecoder::dropUnsuportedChunks
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: RawImage
    signature: RawImage DngDecoder::decodeRawInternal()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngDecoder::parseACTIVEAREA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:538,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:539,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:541,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:542,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:544,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:545,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:547,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:552,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:557,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:558,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:562,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:567,1
    - Dst: iPoint2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:572,1
    - Dst: isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:573,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:576,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:580,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:581,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:582,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:585,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:588,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:588,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:592,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:594,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:597,1
    - Dst: DngOpcodes::applyOpCodes
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:598,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:603,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:603,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:608,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:609,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:610,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:611,1
    - Dst: sixteenBitLookup
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:614,1
    - Dst: rawspeed::DngDecoder::setBlack
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:618,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:622,1
    - Dst: scaleBlackWhite
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:624,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:628,1
    - Dst: DngOpcodes::applyOpCodes
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:629,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:633,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:633,1
    - Dst: blackAreas::clear
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:635,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:638,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:638,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:639,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 644
    functionName: rawspeed::DngDecoder::handleMetadata
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - isThisInside
    - setError
    - blackLevelSeparateStorage::data
    - blackLevelSeparate::getAsArray1DRef
    - TiffEntry*::getU16Array
    - TiffIFD*::getEntry
    - sixteenBitLookup
    - auto::begin
    - std::array::begin
    - iRectangle2D::isPointInsideInclusive
    - static_cast<double>
    - TiffEntry*::getData
    - iRectangle2D
    - scaleBlackWhite
    - std::transform
    - iPoint2D::isThisInside
    - blackAreas::clear
    - TiffIFD*::hasEntry
    - auto::end
    - DngOpcodes::applyOpCodes
    - subFrame
    - std::fill
    - TiffEntry*::getRationalArray
    - ThrowRDE
    - what
    - Array2DRef
    - rawspeed::DngDecoder::parseACTIVEAREA
    - rawspeed::DngDecoder::setBlack
    linkageType: ''
    returnType: void
    signature: void DngDecoder::handleMetadata(const TiffIFD* raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:648,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:650,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:654,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:662,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:663,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:665,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:666,1
    - Dst: metadata::colorMatrix::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:666,1
    - Dst: metadata::colorMatrix::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:667,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:670,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:671,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mRaw->metadata.colorMatrix.size() % 3 == 0)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 693
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 693
    functionName: rawspeed::DngDecoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - metadata::colorMatrix::empty
    - assert
    - getEntryRecursive
    - metadata::colorMatrix::size
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseWhiteBalance() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:696,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:698,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:703,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:705,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:705,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:714,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:716,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:718,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:727,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:729,1
    - Dst: rawspeed::DngDecoder::parseColorMatrix
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:735,1
    - Dst: rawspeed::DngDecoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 738
    functionName: rawspeed::DngDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - setError
    - hasEntryRecursive
    - getEntryRecursive
    - CameraMetaData*::getCamera
    - what
    - rawspeed::DngDecoder::parseColorMatrix
    - rawspeed::DngDecoder::parseWhiteBalance
    linkageType: ''
    returnType: void
    signature: void DngDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:745,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:746,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:748,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:750,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:751,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:758,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 759
    functionName: rawspeed::DngDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - checkCameraSupported
    - getEntryRecursive
    - getID
    - hasEntryRecursive
    linkageType: ''
    returnType: void
    signature: void DngDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:763,1
    - Dst: TiffEntry*::getU32Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:773,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:775,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:776,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:777,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:783,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:784,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:786,1
    - Dst: blackAreas::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:791,1
    - Dst: blackAreas::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:797,1
    - Dst: blackAreas::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:800,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 801
    functionName: rawspeed::DngDecoder::decodeMaskedAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - getCropOffset
    - TiffIFD*::getEntry
    - iRectangle2D::isPointInsideInclusive
    - getUncroppedDim
    - ThrowRDE
    - blackAreas::emplace_back
    - TiffEntry*::getU32Array
    - blackAreas::empty
    linkageType: ''
    returnType: bool
    signature: bool DngDecoder::decodeMaskedAreas(const TiffIFD* raw) const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:805,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:806,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:813,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:820,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:823,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:826,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:829,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:830,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:831,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:837,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:839,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:839,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:840,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:840,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:841,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:844,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:844,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:845,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:848,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:848,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:852,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:852,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:853,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:856,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:858,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:859,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:860,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:860,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:861,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:863,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:863,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:869,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:871,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:872,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:873,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:876,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:878,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:881,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:882,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:882,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:883,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:883,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:884,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:886,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:886,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:887,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:888,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:889,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:893,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:895,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:896,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:897,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:900,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:902,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:905,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:906,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:906,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:907,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:907,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:908,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:910,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:910,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:911,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:912,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:913,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 917
    functionName: rawspeed::DngDecoder::decodeBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - blackLevelSeparateStorage::data
    - getCpp
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - iPoint2D::hasPositiveArea
    - TiffEntry*::getFloat
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - static_cast<double>
    - static_cast<int>
    - TiffIFD*::hasEntry
    - iPoint2D::area
    - TiffEntry*::getU32
    - ThrowRDE
    - blackLevelSeparate1D
    - std::numeric_limits<BlackType>::min
    - std::numeric_limits<BlackType>::max
    - Array2DRef
    - __builtin_sadd_overflow
    linkageType: ''
    returnType: bool
    signature: bool DngDecoder::decodeBlackLevels(const TiffIFD* raw) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:921,1
    - Dst: rawspeed::DngDecoder::decodeMaskedAreas
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:921,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:927,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:927,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:928,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:931,1
    - Dst: rawspeed::DngDecoder::decodeBlackLevels
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: rawspeed::DngDecoder::setBlack
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::DngDecoder::decodeMaskedAreas
    - auto::end
    - blackLevelSeparateStorage::data
    - auto::begin
    - Array2DRef
    - std::fill
    - rawspeed::DngDecoder::decodeBlackLevels
    - blackLevelSeparate::getAsArray1DRef
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: void
    signature: void DngDecoder::setBlack(const TiffIFD* raw) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: rawspeed::RAWSPEED_READONLY::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::hasEntryRecursive
    linkageType: ''
    returnType: bool
    signature: "bool RAWSPEED_READONLY DngDecoder::isAppropriateDecoder(\n    const
      TiffRootIFD* rootIFD, [[maybe_unused]] Buffer file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:67,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:69,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:72,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:75,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:76,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:76,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:77,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' rootIFD'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: rawspeed::DngDecoder::DngDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - hasEntryRecursive
    - ThrowRDE
    - getEntryRecursive
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void DngDecoder::DngDecoder(TiffRootIFDOwner&& rootIFD, Buffer file)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<const TiffIFD*>*::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:88,1
    - Dst: std::vector<const TiffIFD*>*::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:88,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:91,1
    - Dst: hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:95,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:96,1
    - Dst: getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:98,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:130,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:139,1
    - Dst: std::vector<const TiffIFD*>*::erase
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<const TiffIFD*>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 154
    functionName: rawspeed::DngDecoder::dropUnsuportedChunks
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::vector<const TiffIFD*>*::end
    - std::vector<const TiffIFD*>*::erase
    - getEntry
    - writeLog
    - hasEntry
    - std::vector<const TiffIFD*>*::begin
    linkageType: ''
    returnType: void
    signature: void DngDecoder::dropUnsuportedChunks(std::vector<const TiffIFD*>*
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:157,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:160,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:162,1
    - Dst: TiffEntry*::getU32Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:166,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:172,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:173,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:175,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:177,1
    - Dst: iRectangle2D::getTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:177,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:178,1
    - Dst: iRectangle2D::getBottomRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:178,1
    - Dst: iRectangle2D::setTopLeft
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:182,1
    - Dst: iRectangle2D::setBottomRightAbsolute
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:183,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:184,1
    - Dst: iRectangle2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (fullImage.isThisInside(fullImage))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 187
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 187
    functionName: rawspeed::DngDecoder::parseACTIVEAREA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 2
    functionsReached:
    - iRectangle2D::setBottomRightAbsolute
    - iRectangle2D::isThisInside
    - TiffIFD*::getEntry
    - iRectangle2D::getTopLeft
    - iRectangle2D::isPointInsideInclusive
    - ThrowRDE
    - assert
    - iRectangle2D::getBottomRight
    - TiffEntry*::getU32Array
    - iRectangle2D::setTopLeft
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: Optional<iRectangle2D>
    signature: Optional<iRectangle2D> DngDecoder::parseACTIVEAREA(const TiffIFD* raw)
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 210
    functionName: rawspeed::getDNGCFAPatternAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getDNGCFAPatternAsCFAColor(uint32_t c)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 210
    functionName: rawspeed::getDNGCFAPatternAsCFAColor
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<CFAColor>
    signature: Optional<CFAColor> getDNGCFAPatternAsCFAColor(uint32_t c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:216,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:217,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:218,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:220,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:222,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:225,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:227,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:229,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:229,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:230,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:230,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:231,1
    - Dst: cfa::setSize
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:236,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:240,1
    - Dst: getDNGCFAPatternAsCFAColor
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:242,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:244,1
    - Dst: cfa::setColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:246,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:246,1
    - Dst: rawspeed::DngDecoder::parseACTIVEAREA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:253,1
    - Dst: cfa::shiftRight
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:259,1
    - Dst: cfa::shiftDown
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 261
    functionName: rawspeed::DngDecoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - cfa::setSize
    - iPoint2D::area
    - cfa::shiftRight
    - cfa::setColorAt
    - TiffIFD*::getEntry
    - TiffEntry*::getByte
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::DngDecoder::parseACTIVEAREA
    - getDNGCFAPatternAsCFAColor
    - iPoint2D
    - iPoint2D::hasPositiveArea
    - TiffIFD*::hasEntry
    - cfa::shiftDown
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseCFA(const TiffIFD* raw) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:267,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:269,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:270,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:271,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:273,1
    - Dst: impl
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:277,1
    - Dst: impl
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:279,1
    - Dst: TiffEntry*::getSRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:287,1
    - Dst: metadata::colorMatrix::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:289,1
    - Dst: metadata::colorMatrix::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:294,1
    - Dst: metadata::colorMatrix::clear
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 298
    functionName: rawspeed::DngDecoder::parseColorMatrix
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - metadata::colorMatrix::reserve
    - metadata::colorMatrix::clear
    - TiffEntry*::getU16
    - hasEntryRecursive
    - metadata::colorMatrix::emplace_back
    - impl
    - getEntryRecursive
    - TiffEntry*::getSRationalArray
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseColorMatrix() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:302,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:303,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:304,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:307,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:309,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:311,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:311,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:313,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:315,1
    - Dst: implicit_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:317,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:317,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:319,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:321,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:322,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:324,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:331,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:339,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:340,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:343,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:348,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:349,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:353,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:354,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:358,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts:
    - condition: (tilew > 0)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (tileh > 0)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 359
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 359
    functionName: rawspeed::DngDecoder::getTilingDescription
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - TiffIFD*::getEntry
    - implicit_cast<uint32_t>
    - ThrowRDE
    - assert
    - roundUpDivisionSafe
    - TiffIFD*::hasEntry
    - static_cast<uint32_t>
    linkageType: ''
    returnType: DngTilingDescription
    signature: DngTilingDescription DngDecoder::getTilingDescription(const TiffIFD*
      raw) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:363,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:367,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:372,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:373,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:375,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:377,1
    - Dst: getDataType
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:378,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:397,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:398,1
    - Dst: TiffEntry*::isInt
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:399,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:400,1
    - Dst: rawspeed::DngDecoder::getTilingDescription
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:403,1
    - Dst: AbstractDngDecompressor::slices::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:406,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:410,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:411,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:412,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:414,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:415,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:417,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:418,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:422,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:423,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:426,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:428,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:428,1
    - Dst: rootBuffer::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:429,1
    - Dst: NORangesSet::insert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:431,1
    - Dst: ThrowTPE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:432,1
    - Dst: AbstractDngDecompressor::slices::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:434,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:437,1
    - Dst: AbstractDngDecompressor::slices::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:437,1
    - Dst: AbstractDngDecompressor::slices::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:438,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:439,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:443,1
    - Dst: AbstractDngDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:445,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - raw
    - sample_format
    argTypes:
    - TiffIFD*
    - uint32_t
    assertStmts:
    - condition: (slices.slices.size() == slices.dsc.numTiles)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (slices.dsc.numTiles == offsets->count)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    - condition: (slices.dsc.numTiles == counts->count)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 446
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 446
    functionName: rawspeed::DngDecoder::decodeData
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - NORangesSet::insert
    - rootBuffer::getByteOrder
    - getSubView
    - getDataType
    - ThrowTPE
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - createData
    - AbstractDngDecompressor::slices::size
    - TiffIFD*::hasEntry
    - DataBuffer
    - TiffEntry*::getU32
    - ThrowRDE
    - assert
    - AbstractDngDecompressor::decompress
    - rawspeed::DngDecoder::getTilingDescription
    - TiffEntry*::isInt
    - AbstractDngDecompressor::slices::emplace_back
    - AbstractDngDecompressor::slices::reserve
    - AbstractDngDecompressor::slices::empty
    linkageType: ''
    returnType: void
    signature: void DngDecoder::decodeData(const TiffIFD* raw, uint32_t sample_format)
      const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getIFDsWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:449,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:451,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:452,1
    - Dst: rawspeed::DngDecoder::dropUnsuportedChunks
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:454,1
    - Dst: vector::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:456,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:457,1
    - Dst: vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:459,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:460,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:466,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:468,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:471,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:472,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:474,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:478,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:481,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:484,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:490,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:493,1
    - Dst: writeLog
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:495,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:499,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:502,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:504,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:505,1
    - Dst: dim::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:507,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:508,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:513,1
    - Dst: rawspeed::DngDecoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:519,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:521,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:524,1
    - Dst: setCpp
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:526,1
    - Dst: rawspeed::DngDecoder::decodeData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:529,1
    - Dst: rawspeed::DngDecoder::handleMetadata
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:531,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 534
    functionName: rawspeed::DngDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - getIFDsWithTag
    - dim::hasPositiveArea
    - vector::size
    - TiffIFD*::getEntry
    - writeLog
    - vector::empty
    - ThrowRDE
    - rawspeed::DngDecoder::decodeData
    - setCpp
    - rawspeed::DngDecoder::handleMetadata
    - rawspeed::DngDecoder::parseCFA
    - rawspeed::DngDecoder::dropUnsuportedChunks
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: RawImage
    signature: RawImage DngDecoder::decodeRawInternal()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::DngDecoder::parseACTIVEAREA
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:538,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:539,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:541,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:542,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:544,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:545,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:547,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:549,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:552,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:557,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:558,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:562,1
    - Dst: std::transform
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:564,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:567,1
    - Dst: iPoint2D::isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:572,1
    - Dst: isThisInside
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:573,1
    - Dst: subFrame
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:576,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:580,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:581,1
    - Dst: TiffEntry*::getRationalArray
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:582,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:585,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:588,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:588,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:592,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:594,1
    - Dst: TiffEntry*::getData
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:597,1
    - Dst: DngOpcodes::applyOpCodes
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:598,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:603,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:603,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:608,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:609,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:610,1
    - Dst: TiffEntry*::getU16Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:611,1
    - Dst: sixteenBitLookup
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:614,1
    - Dst: rawspeed::DngDecoder::setBlack
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:618,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:622,1
    - Dst: scaleBlackWhite
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:624,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:628,1
    - Dst: DngOpcodes::applyOpCodes
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:629,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:633,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:633,1
    - Dst: blackAreas::clear
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:635,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:638,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:638,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:639,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:640,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 644
    functionName: rawspeed::DngDecoder::handleMetadata
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 2
    functionsReached:
    - isThisInside
    - setError
    - blackLevelSeparateStorage::data
    - blackLevelSeparate::getAsArray1DRef
    - TiffEntry*::getU16Array
    - TiffIFD*::getEntry
    - sixteenBitLookup
    - auto::begin
    - std::array::begin
    - iRectangle2D::isPointInsideInclusive
    - static_cast<double>
    - TiffEntry*::getData
    - iRectangle2D
    - scaleBlackWhite
    - std::transform
    - iPoint2D::isThisInside
    - blackAreas::clear
    - TiffIFD*::hasEntry
    - auto::end
    - DngOpcodes::applyOpCodes
    - subFrame
    - std::fill
    - TiffEntry*::getRationalArray
    - ThrowRDE
    - what
    - Array2DRef
    - rawspeed::DngDecoder::parseACTIVEAREA
    - rawspeed::DngDecoder::setBlack
    linkageType: ''
    returnType: void
    signature: void DngDecoder::handleMetadata(const TiffIFD* raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:648,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:650,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:654,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:662,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:663,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:665,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:666,1
    - Dst: metadata::colorMatrix::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:666,1
    - Dst: metadata::colorMatrix::size
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:667,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:670,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:671,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mRaw->metadata.colorMatrix.size() % 3 == 0)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    constantsTouched: []
    func_position:
      end: 693
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 693
    functionName: rawspeed::DngDecoder::parseWhiteBalance
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - TiffEntry*::getFloat
    - hasEntryRecursive
    - metadata::colorMatrix::empty
    - assert
    - getEntryRecursive
    - metadata::colorMatrix::size
    linkageType: ''
    returnType: void
    signature: void DngDecoder::parseWhiteBalance() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:696,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:698,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:703,1
    - Dst: setError
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:705,1
    - Dst: what
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:705,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:714,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:716,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:718,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:727,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:729,1
    - Dst: rawspeed::DngDecoder::parseColorMatrix
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:735,1
    - Dst: rawspeed::DngDecoder::parseWhiteBalance
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 738
    functionName: rawspeed::DngDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - setError
    - hasEntryRecursive
    - getEntryRecursive
    - CameraMetaData*::getCamera
    - what
    - rawspeed::DngDecoder::parseColorMatrix
    - rawspeed::DngDecoder::parseWhiteBalance
    linkageType: ''
    returnType: void
    signature: void DngDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:745,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:746,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:748,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:750,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:751,1
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:758,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 759
    functionName: rawspeed::DngDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 0
    functionsReached:
    - checkCameraSupported
    - getEntryRecursive
    - getID
    - hasEntryRecursive
    linkageType: ''
    returnType: void
    signature: void DngDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:763,1
    - Dst: TiffEntry*::getU32Array
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:773,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:775,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:776,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:777,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:783,1
    - Dst: iRectangle2D::isPointInsideInclusive
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:784,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:786,1
    - Dst: blackAreas::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:791,1
    - Dst: blackAreas::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:797,1
    - Dst: blackAreas::empty
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:800,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 801
    functionName: rawspeed::DngDecoder::decodeMaskedAreas
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - getCropOffset
    - TiffIFD*::getEntry
    - iRectangle2D::isPointInsideInclusive
    - getUncroppedDim
    - ThrowRDE
    - blackAreas::emplace_back
    - TiffEntry*::getU32Array
    - blackAreas::empty
    linkageType: ''
    returnType: bool
    signature: bool DngDecoder::decodeMaskedAreas(const TiffIFD* raw) const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:805,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:806,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:808,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:811,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:813,1
    - Dst: iPoint2D::hasPositiveArea
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:820,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:823,1
    - Dst: getCpp
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:826,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:829,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:830,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:831,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:837,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:839,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:839,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:840,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:840,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:841,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:844,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:844,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:845,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:848,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:848,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:852,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:852,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:853,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:856,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:858,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:859,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:860,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:860,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:861,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:863,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:863,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:869,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:871,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:872,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:873,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:876,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:878,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:881,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:882,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:882,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:883,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:883,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:884,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:886,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:886,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:887,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:888,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:889,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:893,1
    - Dst: TiffIFD*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:895,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:896,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:897,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:900,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:902,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:905,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:906,1
    - Dst: std::numeric_limits<BlackType>::min
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:906,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:907,1
    - Dst: std::numeric_limits<BlackType>::max
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:907,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:908,1
    - Dst: __builtin_sadd_overflow
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:910,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:910,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:911,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:912,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:913,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 917
    functionName: rawspeed::DngDecoder::decodeBlackLevels
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 1
    functionsReached:
    - blackLevelSeparateStorage::data
    - getCpp
    - iPoint2D
    - blackLevelSeparate::getAsArray1DRef
    - static_cast<float>
    - iPoint2D::hasPositiveArea
    - TiffEntry*::getFloat
    - TiffIFD*::getEntry
    - implicit_cast<int>
    - static_cast<double>
    - static_cast<int>
    - TiffIFD*::hasEntry
    - iPoint2D::area
    - TiffEntry*::getU32
    - ThrowRDE
    - blackLevelSeparate1D
    - std::numeric_limits<BlackType>::min
    - std::numeric_limits<BlackType>::max
    - Array2DRef
    - __builtin_sadd_overflow
    linkageType: ''
    returnType: bool
    signature: bool DngDecoder::decodeBlackLevels(const TiffIFD* raw) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:921,1
    - Dst: rawspeed::DngDecoder::decodeMaskedAreas
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:921,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:927,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:927,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:928,1
    - Dst: std::fill
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: auto::end
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:929,1
    - Dst: TiffIFD*::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:931,1
    - Dst: rawspeed::DngDecoder::decodeBlackLevels
      Src: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - raw
    argTypes:
    - TiffIFD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: rawspeed::DngDecoder::setBlack
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::DngDecoder::decodeMaskedAreas
    - auto::end
    - blackLevelSeparateStorage::data
    - auto::begin
    - Array2DRef
    - std::fill
    - rawspeed::DngDecoder::decodeBlackLevels
    - blackLevelSeparate::getAsArray1DRef
    - TiffIFD*::hasEntry
    linkageType: ''
    returnType: void
    signature: void DngDecoder::setBlack(const TiffIFD* raw) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer::get
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: rawspeed::IiqDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - DataBuffer::get
    linkageType: ''
    returnType: bool
    signature: bool IiqDecoder::isAppropriateDecoder(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:67,1
    - Dst: rawspeed::IiqDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: rawspeed::IiqDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::IiqDecoder::isAppropriateDecoder
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: bool IiqDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, Buffer
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:78,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:79,1
    - Dst: std::vector<IiqOffset>::size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:79,1
    - Dst: std::sort
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: std::vector<IiqOffset>::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: std::vector<IiqOffset>::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:91,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:96,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:98,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:99,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:101,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:102,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:103,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:105,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:107,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:107,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:109,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:110,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:113,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - raw_data
    - offsets
    - height
    argTypes:
    - Buffer
    - std::vector<IiqOffset>
    - uint32_t
    assertStmts:
    - condition: (height > 0)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (next_offset_iterator->offset > offset_iterator->offset)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (offsets.size() == (1 + height))
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (slices.size() == height)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (size > 0)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 116
    functionName: rawspeed::IiqDecoder::computeSripes
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - std::vector<IiqOffset>::begin
    - std::end
    - std::advance
    - std::vector::emplace_back
    - ByteStream::getStream
    - std::vector<IiqOffset>::size
    - std::vector::reserve
    - std::vector::size
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - std::next
    - std::begin
    - std::sort
    - std::vector<IiqOffset>::end
    linkageType: ''
    returnType: std::vector<PhaseOneStrip>
    signature: "std::vector<PhaseOneStrip> IiqDecoder::computeSripes(Buffer raw_data,
      std::vector<IiqOffset> offsets,\n                          uint32_t height)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: rawspeed::getAsIIQFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<IIQFormat>
    signature: Optional<IIQFormat> getAsIIQFormat(uint32_t v)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: rawspeed::getAsIIQFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<IIQFormat>
    signature: Optional<IIQFormat> getAsIIQFormat(uint32_t v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:155,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:159,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:160,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:162,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:164,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:166,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:168,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:169,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:172,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:174,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:188,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:189,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:191,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:195,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:205,1
    - Dst: getAsIIQFormat
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:206,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:208,1
    - Dst: ByteStream::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:211,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:214,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:218,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:238,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:241,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:247,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:250,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:253,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:256,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:256,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:260,1
    - Dst: Optional::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:260,1
    - Dst: rawspeed::IiqDecoder::computeSripes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:263,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:263,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:265,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:268,1
    - Dst: PhaseOneDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:269,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:271,1
    - Dst: rawspeed::IiqDecoder::CorrectPhaseOneC
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:272,1
    - Dst: ByteStream::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:276,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 280
    functionName: rawspeed::IiqDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getStream
    - getSubView
    - ByteStream::getSize
    - PhaseOneDecompressor::decompress
    - iPoint2D
    - std::vector::emplace_back
    - Optional::getSize
    - ByteStream::setPosition
    - ByteStream::getPosition
    - ByteStream::skipBytes
    - ByteStream::getFloat
    - getAsIIQFormat
    - createData
    - ByteStream::getU32
    - ThrowRDE
    - ByteStream::getSubStream
    - std::move
    - std::vector::reserve
    - rawspeed::IiqDecoder::CorrectPhaseOneC
    - rawspeed::IiqDecoder::computeSripes
    - ByteStream::getSubView
    linkageType: ''
    returnType: RawImage
    signature: RawImage IiqDecoder::decodeRawInternal()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:284,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:285,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:286,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:287,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:288,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:291,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:292,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:298,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:299,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:300,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:305,1
    - Dst: rawspeed::IiqDecoder::correctSensorDefects
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:306,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:306,1
    - Dst: rawspeed::IiqDecoder::PhaseOneFlatField
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:310,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:310,1
    - Dst: rawspeed::IiqDecoder::PhaseOneFlatField
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:313,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:313,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:317,1
    - Dst: rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:319,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:319,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - meta_data
    - split_row
    - split_col
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 327
    functionName: rawspeed::IiqDecoder::CorrectPhaseOneC
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - ByteStream::setPosition
    - rawspeed::IiqDecoder::PhaseOneFlatField
    - rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
    - ByteStream::skipBytes
    - ThrowRDE
    - rawspeed::IiqDecoder::correctSensorDefects
    - ByteStream::getSubStream
    linkageType: ''
    returnType: void
    signature: "void IiqDecoder::CorrectPhaseOneC(ByteStream meta_data, uint32_t split_row,\n
      \                                 uint32_t split_col) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:344,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:348,1
    - Dst: std::array::back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:349,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::array::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::array::cend
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::greater_equal<>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:353,1
    - Dst: std::array::cend
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:353,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:354,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:359,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:360,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:366,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:368,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:369,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:372,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:373,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:373,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:379,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:382,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:385,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:387,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:391,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:401,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - data
    - split_row
    - split_col
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (quadrant.size() == 9)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    constantsTouched: []
    func_position:
      end: 407
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 407
    functionName: rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - Array2DRef::height
    - img
    - std::greater_equal<>
    - emplace_back
    - Array2DRef::width
    - std::generate_n
    - std::array::front
    - std::array::cend
    - reserve
    - size
    - std::array::back
    - std::array::begin
    - getU16DataAsUncroppedArray2DRef
    - std::adjacent_find
    - implicit_cast<uint16_t>
    - ByteStream::getU32
    - std::array::cbegin
    - ThrowRDE
    - assert
    - std::next
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: "void IiqDecoder::CorrectQuadrantMultipliersCombined(ByteStream data,\n
      \                                                   uint32_t split_row,\n                                                    uint32_t
      split_col) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:413,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:422,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:427,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:432,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:432,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:433,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:433,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:436,1
    - Dst: Array2DRef<float>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:438,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:438,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:443,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:445,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:447,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:447,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:458,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:459,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:466,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:466,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:469,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:469,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:478,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:478,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 2
    argNames:
    - data
    - corr
    argTypes:
    - ByteStream
    - IiqCorr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 481
    functionName: rawspeed::IiqDecoder::PhaseOneFlatField
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::RawImage::create
    - ByteStream::getU16
    - Array2DRef<float>
    - std::vector::data
    - mrow
    - img
    - std::min
    - implicit_cast<int>
    - ThrowRDE
    - implicit_cast<unsigned>
    - getU16DataAsUncroppedArray2DRef
    - roundUpDivisionSafe
    - cfa::getColorAt
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::PhaseOneFlatField(ByteStream data, IiqCorr corr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:484,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:484,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:486,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:487,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    - Dst: auto::make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    - Dst: auto::model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: rawspeed::IiqDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - auto::make::c_str
    - auto::model::c_str
    - ThrowRDE
    - checkCameraSupported
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: rawspeed::IiqDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:502,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:503,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:504,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:505,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:506,1
    - Dst: rawspeed::IiqDecoder::correctBadColumn
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:513,1
    - Dst: rawspeed::IiqDecoder::handleBadPixel
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: rawspeed::IiqDecoder::correctSensorDefects
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - rawspeed::IiqDecoder::correctBadColumn
    - rawspeed::IiqDecoder::handleBadPixel
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::correctSensorDefects(ByteStream data) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:526,1
    - Dst: mBadPixelPositions::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:526,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - col
    - row
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: rawspeed::IiqDecoder::handleBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - mBadPixelPositions::end
    - mBadPixelPositions::insert
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::handleBadPixel(const uint16_t col, const uint16_t
      row) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:531,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:534,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:547,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:548,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:549,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:550,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:552,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:558,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:558,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:570,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:570,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:571,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:571,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:572,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:572,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:574,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:574,1
    - Dst: std::lround
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - col
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 578
    functionName: rawspeed::IiqDecoder::correctBadColumn
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::abs
    - img
    - getU16DataAsUncroppedArray2DRef
    - cfa::getColorAt
    - std::lround
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::correctBadColumn(const uint16_t col) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer::get
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: rawspeed::IiqDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 3
    functionsReached:
    - DataBuffer::get
    linkageType: ''
    returnType: bool
    signature: bool IiqDecoder::isAppropriateDecoder(Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:67,1
    - Dst: rawspeed::IiqDecoder::isAppropriateDecoder
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: rawspeed::IiqDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 4
    functionsReached:
    - rawspeed::IiqDecoder::isAppropriateDecoder
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: bool IiqDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, Buffer
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:78,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:79,1
    - Dst: std::vector<IiqOffset>::size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:79,1
    - Dst: std::sort
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: std::vector<IiqOffset>::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: std::vector<IiqOffset>::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:88,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:91,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:96,1
    - Dst: std::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:98,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:99,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:101,1
    - Dst: std::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:102,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:103,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:105,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:107,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:107,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:109,1
    - Dst: std::advance
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:110,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:113,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - raw_data
    - offsets
    - height
    argTypes:
    - Buffer
    - std::vector<IiqOffset>
    - uint32_t
    assertStmts:
    - condition: (height > 0)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (next_offset_iterator->offset > offset_iterator->offset)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (offsets.size() == (1 + height))
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (slices.size() == height)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - condition: (size > 0)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 116
    functionName: rawspeed::IiqDecoder::computeSripes
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 1
    functionsReached:
    - std::vector<IiqOffset>::begin
    - std::end
    - std::advance
    - std::vector::emplace_back
    - ByteStream::getStream
    - std::vector<IiqOffset>::size
    - std::vector::reserve
    - std::vector::size
    - ThrowRDE
    - ByteStream::skipBytes
    - assert
    - std::next
    - std::begin
    - std::sort
    - std::vector<IiqOffset>::end
    linkageType: ''
    returnType: std::vector<PhaseOneStrip>
    signature: "std::vector<PhaseOneStrip> IiqDecoder::computeSripes(Buffer raw_data,
      std::vector<IiqOffset> offsets,\n                          uint32_t height)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: rawspeed::getAsIIQFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<IIQFormat>
    signature: Optional<IIQFormat> getAsIIQFormat(uint32_t v)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: rawspeed::getAsIIQFormat
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<IIQFormat>
    signature: Optional<IIQFormat> getAsIIQFormat(uint32_t v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:155,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:159,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:160,1
    - Dst: ByteStream::getPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:162,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:164,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:166,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:168,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:169,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:172,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:174,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:188,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:189,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:191,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:195,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:205,1
    - Dst: getAsIIQFormat
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:206,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:208,1
    - Dst: ByteStream::getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:211,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:214,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:218,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:238,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:241,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:244,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:247,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:250,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:253,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:256,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:256,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:260,1
    - Dst: Optional::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:260,1
    - Dst: rawspeed::IiqDecoder::computeSripes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:263,1
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:263,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:265,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:268,1
    - Dst: PhaseOneDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:269,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:271,1
    - Dst: rawspeed::IiqDecoder::CorrectPhaseOneC
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:272,1
    - Dst: ByteStream::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:276,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 280
    functionName: rawspeed::IiqDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getStream
    - getSubView
    - ByteStream::getSize
    - PhaseOneDecompressor::decompress
    - iPoint2D
    - std::vector::emplace_back
    - Optional::getSize
    - ByteStream::setPosition
    - ByteStream::getPosition
    - ByteStream::skipBytes
    - ByteStream::getFloat
    - getAsIIQFormat
    - createData
    - ByteStream::getU32
    - ThrowRDE
    - ByteStream::getSubStream
    - std::move
    - std::vector::reserve
    - rawspeed::IiqDecoder::CorrectPhaseOneC
    - rawspeed::IiqDecoder::computeSripes
    - ByteStream::getSubView
    linkageType: ''
    returnType: RawImage
    signature: RawImage IiqDecoder::decodeRawInternal()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:284,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:285,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:286,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:287,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:288,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:291,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:292,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:298,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:299,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:300,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:305,1
    - Dst: rawspeed::IiqDecoder::correctSensorDefects
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:306,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:306,1
    - Dst: rawspeed::IiqDecoder::PhaseOneFlatField
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:310,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:310,1
    - Dst: rawspeed::IiqDecoder::PhaseOneFlatField
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:313,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:313,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:317,1
    - Dst: rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:319,1
    - Dst: ByteStream::getSubStream
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:319,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - meta_data
    - split_row
    - split_col
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 327
    functionName: rawspeed::IiqDecoder::CorrectPhaseOneC
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - ByteStream::setPosition
    - rawspeed::IiqDecoder::PhaseOneFlatField
    - rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
    - ByteStream::skipBytes
    - ThrowRDE
    - rawspeed::IiqDecoder::correctSensorDefects
    - ByteStream::getSubStream
    linkageType: ''
    returnType: void
    signature: "void IiqDecoder::CorrectPhaseOneC(ByteStream meta_data, uint32_t split_row,\n
      \                                 uint32_t split_col) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::generate_n
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: std::next
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: std::array::begin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:343,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:344,1
    - Dst: std::array::front
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:348,1
    - Dst: std::array::back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:349,1
    - Dst: std::adjacent_find
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::array::cbegin
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::array::cend
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:352,1
    - Dst: std::greater_equal<>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:353,1
    - Dst: std::array::cend
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:353,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:354,1
    - Dst: reserve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:359,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:360,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:366,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:368,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:369,1
    - Dst: emplace_back
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:372,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:373,1
    - Dst: size
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:373,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:379,1
    - Dst: Spline::calculateCurve
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:382,1
    - Dst: Array2DRef::height
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:385,1
    - Dst: Array2DRef::width
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:387,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:391,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:401,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - data
    - split_row
    - split_col
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (quadrant.size() == 9)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    constantsTouched: []
    func_position:
      end: 407
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 407
    functionName: rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - Array2DRef::height
    - img
    - std::greater_equal<>
    - emplace_back
    - Array2DRef::width
    - std::generate_n
    - std::array::front
    - std::array::cend
    - reserve
    - size
    - std::array::back
    - std::array::begin
    - getU16DataAsUncroppedArray2DRef
    - std::adjacent_find
    - implicit_cast<uint16_t>
    - ByteStream::getU32
    - std::array::cbegin
    - ThrowRDE
    - assert
    - std::next
    - Spline::calculateCurve
    linkageType: ''
    returnType: void
    signature: "void IiqDecoder::CorrectQuadrantMultipliersCombined(ByteStream data,\n
      \                                                   uint32_t split_row,\n                                                    uint32_t
      split_col) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:413,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:422,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:427,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:432,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:432,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:433,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:433,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:436,1
    - Dst: Array2DRef<float>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:438,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:438,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:443,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:445,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:447,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:447,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:458,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:459,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:466,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:466,1
    - Dst: implicit_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:469,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:469,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: std::min
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:470,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:478,1
    - Dst: mrow
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:478,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 2
    argNames:
    - data
    - corr
    argTypes:
    - ByteStream
    - IiqCorr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 481
    functionName: rawspeed::IiqDecoder::PhaseOneFlatField
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::RawImage::create
    - ByteStream::getU16
    - Array2DRef<float>
    - std::vector::data
    - mrow
    - img
    - std::min
    - implicit_cast<int>
    - ThrowRDE
    - implicit_cast<unsigned>
    - getU16DataAsUncroppedArray2DRef
    - roundUpDivisionSafe
    - cfa::getColorAt
    - static_cast<unsigned>
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::PhaseOneFlatField(ByteStream data, IiqCorr corr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkCameraSupported
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:484,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:484,1
    - Dst: getID
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:486,1
    - Dst: CameraMetaData*::getCamera
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:487,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    - Dst: auto::make::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    - Dst: auto::model::c_str
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: rawspeed::IiqDecoder::checkSupportInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - getID
    - auto::make::c_str
    - auto::model::c_str
    - ThrowRDE
    - checkCameraSupported
    - CameraMetaData*::getCamera
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::checkSupportInternal(const CameraMetaData* meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: rawspeed::IiqDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 0
    functionsReached:
    - setMetaData
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:502,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:503,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:504,1
    - Dst: ByteStream::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:505,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:506,1
    - Dst: rawspeed::IiqDecoder::correctBadColumn
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:513,1
    - Dst: rawspeed::IiqDecoder::handleBadPixel
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: rawspeed::IiqDecoder::correctSensorDefects
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getU16
    - ByteStream::getRemainSize
    - ByteStream::skipBytes
    - rawspeed::IiqDecoder::correctBadColumn
    - rawspeed::IiqDecoder::handleBadPixel
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::correctSensorDefects(ByteStream data) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mBadPixelPositions::insert
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:526,1
    - Dst: mBadPixelPositions::end
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:526,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - col
    - row
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: rawspeed::IiqDecoder::handleBadPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - mBadPixelPositions::end
    - mBadPixelPositions::insert
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::handleBadPixel(const uint16_t col, const uint16_t
      row) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:531,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:534,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:547,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:548,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:549,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:550,1
    - Dst: std::abs
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:552,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:558,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:558,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:570,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:570,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:571,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:571,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:572,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:572,1
    - Dst: img
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:574,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:574,1
    - Dst: std::lround
      Src: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - col
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 578
    functionName: rawspeed::IiqDecoder::correctBadColumn
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    functionUses: 2
    functionsReached:
    - std::abs
    - img
    - getU16DataAsUncroppedArray2DRef
    - cfa::getColorAt
    - std::lround
    - implicit_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void IiqDecoder::correctBadColumn(const uint16_t col) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::ArwDecoder::ArwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ArwDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::ArwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::ArwDecoder::ArwDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ArwDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: rawspeed::ArwDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::ErfDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ErfDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::ErfDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void ErfDecoder::checkImageDimensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:59,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:63,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:63,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:65,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed::ErfDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - getSubView
    - UncompressedDecompressor::decode12BitRawWithControl
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage ErfDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:73,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:75,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:76,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:80,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:80,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:81,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:83,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:83,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: rawspeed::ErfDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - getEntryRecursive
    - setMetaData
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void ErfDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rawspeed::ErfDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool ErfDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rawspeed::ErfDecoder::checkImageDimensions
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: void
    signature: void ErfDecoder::checkImageDimensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::SimpleTiffDecoder::prepareForRawDecoding
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:59,1
    - Dst: ByteStream
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: DataBuffer
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: getSubView
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:62,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:63,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:63,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:65,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: rawspeed::ErfDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - DataBuffer
    - ByteStream
    - getSubView
    - UncompressedDecompressor::decode12BitRawWithControl
    - iRectangle2D
    - createData
    - iPoint2D
    - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
    linkageType: ''
    returnType: RawImage
    signature: RawImage ErfDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:73,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:75,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:76,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:80,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:80,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:81,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:83,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:83,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: rawspeed::ErfDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - getEntryRecursive
    - setMetaData
    - static_cast<float>
    linkageType: ''
    returnType: void
    signature: void ErfDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::ThreefrDecoder::ThreefrDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::ThreefrDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: rawspeed::ThreefrDecoder::ThreefrDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThreefrDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::ThreefrDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: rawspeed::KdcDecoder::KdcDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void KdcDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::KdcDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: rawspeed::KdcDecoder::KdcDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void KdcDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: rawspeed::KdcDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::DcrDecoder::DcrDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DcrDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::DcrDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: rawspeed::DcrDecoder::DcrDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DcrDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: rawspeed::DcrDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: rawspeed::OrfDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool OrfDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:65,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:67,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:71,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:76,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:77,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:81,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:82,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:84,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:87,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:93,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:98,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:104,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:105,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 108
    functionName: rawspeed::OrfDecoder::handleSlices
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getStream
    - getIFDWithTag
    - ByteStream::setPosition
    - end
    - TiffEntry*::getU32
    - ThrowRDE
    - auto*::getEntry
    - TiffEntry*::getRootIfdData
    - isValid
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream OrfDecoder::handleSlices() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:111,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:113,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:115,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:117,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:118,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:121,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:123,1
    - Dst: rawspeed::OrfDecoder::decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:127,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:127,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:130,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:131,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:132,1
    - Dst: rawspeed::OrfDecoder::getBitsPerPixel
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:134,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:135,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:139,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:143,1
    - Dst: OlympusDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: rawspeed::OrfDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithTag
    - rawspeed::OrfDecoder::getBitsPerPixel
    - rawspeed::OrfDecoder::decodeUncompressed
    - OlympusDecompressor::decompress
    - ThrowRDE
    - ByteStream::skipBytes
    - auto*::getEntry
    - ByteStream::getSize
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage OrfDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:151,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:154,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:158,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:159,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:161,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:161,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:163,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:163,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: rawspeed::OrfDecoder::getBitsPerPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 1
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - TiffRootIFD::hasEntry
    - TiffEntry*::getU32
    - getEntryRecursive
    - static_cast<TiffTag>
    - TiffEntry*::getRootIfdData
    - TiffRootIFD::getEntry
    linkageType: ''
    returnType: int
    signature: int OrfDecoder::getBitsPerPixel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:174,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:178,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:178,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:179,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:185,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:185,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:186,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:187,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:188,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:191,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:196,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:198,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - s
    - w
    - h
    - size
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (inputPitchBits % 8 == 0)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    - condition: (oddLinesInputBegin >= evenLinesInput.size())
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    constantsTouched: []
    func_position:
      end: 217
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 217
    functionName: rawspeed::OrfDecoder::decodeUncompressedInterleaved
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - implicit_cast<uint16_t>
    - ByteStream::getStream
    - implicit_cast<int>
    - roundUp
    - ByteStream::skipBytes
    - assert
    - getU16DataAsUncroppedArray2DRef
    - roundUpDivisionSafe
    - createData
    - out
    - BitStreamerMSB::getBits
    - auto::size
    linkageType: ''
    returnType: void
    signature: "void OrfDecoder::decodeUncompressedInterleaved(ByteStream s, uint32_t
      w,\n                                               uint32_t h,\n                                               uint32_t
      size) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:226,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:226,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:229,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:230,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:237,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:239,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:240,1
    - Dst: ByteStream::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:246,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:246,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:247,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:247,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:249,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:250,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:252,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:252,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:254,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:255,1
    - Dst: rawspeed::OrfDecoder::decodeUncompressedInterleaved
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - s
    - w
    - h
    - size
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 268
    functionName: rawspeed::OrfDecoder::decodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 1
    functionsReached:
    - getHostEndianness
    - rawspeed::OrfDecoder::decodeUncompressedInterleaved
    - UncompressedDecompressor::decode12BitRawWithControl
    - ByteStream::getByteOrder
    - UncompressedDecompressor::readUncompressedRaw
    - createData
    - iRectangle2D
    - iPoint2D
    - UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    linkageType: ''
    returnType: bool
    signature: "bool OrfDecoder::decodeUncompressed(ByteStream s, uint32_t w, uint32_t
      h,\n                                    uint32_t size) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:271,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:272,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:274,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:276,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:277,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:280,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:280,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:282,1
    - Dst: cfa::setSize
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:284,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:296,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:302,1
    - Dst: int2enum
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:303,1
    - Dst: cfa::setColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:304,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: rawspeed::OrfDecoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - cfa::setSize
    - TiffEntry*::getU16
    - hasEntryRecursive
    - cfa::setColorAt
    - TiffEntry*::getByte
    - ThrowRDE
    - getEntryRecursive
    - iPoint2D
    - static_cast<unsigned>
    - int2enum
    linkageType: ''
    returnType: void
    signature: void OrfDecoder::parseCFA() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:314,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:315,1
    - Dst: rawspeed::OrfDecoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:317,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:319,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:321,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:322,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:324,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:325,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:327,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:328,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:330,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:333,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:337,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:338,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:341,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:341,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:343,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:343,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:346,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:348,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:354,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:354,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:356,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:356,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:360,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:360,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:362,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:364,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:378,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:378,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:381,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:381,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:386,1
    - Dst: rawspeed::OrfDecoder::getBitsPerPixel
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:387,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:391,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:391,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 397
    functionName: rawspeed::OrfDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - TiffRootIFD::hasEntry
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - cfa::getColorAt
    - blackLevelSeparate::getAsArray1DRef
    - TiffEntry*::getRootIfdData
    - static_cast<float>
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::OrfDecoder::parseCFA
    - static_cast<TiffTag>
    - TiffRootIFD::getEntry
    - setMetaData
    - blackLevelSeparate1D
    - rawspeed::OrfDecoder::getBitsPerPixel
    - Array2DRef
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void OrfDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TiffRootIFD*::getID
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rootIFD
    - file
    argTypes:
    - TiffRootIFD*
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: rawspeed::OrfDecoder::isAppropriateDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - TiffRootIFD*::getID
    linkageType: ''
    returnType: bool
    signature: "bool OrfDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD,\n
      \                                     [[maybe_unused]] Buffer file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:65,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:67,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:68,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:71,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:76,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:77,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:81,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:82,1
    - Dst: isValid
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:83,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:84,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:87,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:92,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:93,1
    - Dst: end
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:98,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:104,1
    - Dst: ByteStream::setPosition
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:105,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 108
    functionName: rawspeed::OrfDecoder::handleSlices
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getStream
    - getIFDWithTag
    - ByteStream::setPosition
    - end
    - TiffEntry*::getU32
    - ThrowRDE
    - auto*::getEntry
    - TiffEntry*::getRootIfdData
    - isValid
    linkageType: ''
    returnType: ByteStream
    signature: ByteStream OrfDecoder::handleSlices() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getIFDWithTag
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:111,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:113,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:115,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:117,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:118,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:121,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:123,1
    - Dst: rawspeed::OrfDecoder::decodeUncompressed
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:127,1
    - Dst: ByteStream::getSize
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:127,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:130,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:131,1
    - Dst: auto*::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:132,1
    - Dst: rawspeed::OrfDecoder::getBitsPerPixel
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:134,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:135,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:137,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:139,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:143,1
    - Dst: OlympusDecompressor::decompress
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: rawspeed::OrfDecoder::decodeRawInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - getIFDWithTag
    - rawspeed::OrfDecoder::getBitsPerPixel
    - rawspeed::OrfDecoder::decodeUncompressed
    - OlympusDecompressor::decompress
    - ThrowRDE
    - ByteStream::skipBytes
    - auto*::getEntry
    - ByteStream::getSize
    - createData
    - iPoint2D
    linkageType: ''
    returnType: RawImage
    signature: RawImage OrfDecoder::decodeRawInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:151,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:154,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:158,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:159,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:161,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:161,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:163,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:163,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: rawspeed::OrfDecoder::getBitsPerPixel
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 3
    functionsReached:
    - TiffEntry*::getU16
    - hasEntryRecursive
    - TiffRootIFD::hasEntry
    - TiffEntry*::getU32
    - getEntryRecursive
    - static_cast<TiffTag>
    - TiffEntry*::getRootIfdData
    - TiffRootIFD::getEntry
    linkageType: ''
    returnType: int
    signature: int OrfDecoder::getBitsPerPixel() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:174,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:178,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:178,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:179,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: roundUp
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:184,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:185,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:185,1
    - Dst: auto::size
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:186,1
    - Dst: assert
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:187,1
    - Dst: ByteStream::skipBytes
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:188,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:191,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:196,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:198,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:204,1
    - Dst: out
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    - Dst: implicit_cast<uint16_t>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    - Dst: BitStreamerMSB::getBits
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - s
    - w
    - h
    - size
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (inputPitchBits % 8 == 0)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    - condition: (oddLinesInputBegin >= evenLinesInput.size())
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    constantsTouched: []
    func_position:
      end: 217
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 217
    functionName: rawspeed::OrfDecoder::decodeUncompressedInterleaved
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 1
    functionsReached:
    - implicit_cast<uint16_t>
    - ByteStream::getStream
    - implicit_cast<int>
    - roundUp
    - ByteStream::skipBytes
    - assert
    - getU16DataAsUncroppedArray2DRef
    - roundUpDivisionSafe
    - createData
    - out
    - BitStreamerMSB::getBits
    - auto::size
    linkageType: ''
    returnType: void
    signature: "void OrfDecoder::decodeUncompressedInterleaved(ByteStream s, uint32_t
      w,\n                                               uint32_t h,\n                                               uint32_t
      size) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:226,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:226,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:229,1
    - Dst: UncompressedDecompressor::decode12BitRawWithControl
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:230,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:237,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:239,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:240,1
    - Dst: ByteStream::getByteOrder
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:246,1
    - Dst: getHostEndianness
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:246,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:247,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:247,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:249,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:250,1
    - Dst: iRectangle2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:252,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:252,1
    - Dst: createData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:254,1
    - Dst: UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:255,1
    - Dst: rawspeed::OrfDecoder::decodeUncompressedInterleaved
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - s
    - w
    - h
    - size
    argTypes:
    - ByteStream
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 268
    functionName: rawspeed::OrfDecoder::decodeUncompressed
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 2
    functionsReached:
    - getHostEndianness
    - rawspeed::OrfDecoder::decodeUncompressedInterleaved
    - UncompressedDecompressor::decode12BitRawWithControl
    - ByteStream::getByteOrder
    - UncompressedDecompressor::readUncompressedRaw
    - createData
    - iRectangle2D
    - iPoint2D
    - UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
    linkageType: ''
    returnType: bool
    signature: "bool OrfDecoder::decodeUncompressed(ByteStream s, uint32_t w, uint32_t
      h,\n                                    uint32_t size) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:271,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:272,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:274,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:276,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:277,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:280,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:280,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:282,1
    - Dst: cfa::setSize
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:284,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:296,1
    - Dst: TiffEntry*::getByte
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:302,1
    - Dst: int2enum
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:303,1
    - Dst: cfa::setColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:304,1
    - Dst: iPoint2D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: rawspeed::OrfDecoder::parseCFA
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 1
    functionsReached:
    - cfa::setSize
    - TiffEntry*::getU16
    - hasEntryRecursive
    - cfa::setColorAt
    - TiffEntry*::getByte
    - ThrowRDE
    - getEntryRecursive
    - iPoint2D
    - static_cast<unsigned>
    - int2enum
    linkageType: ''
    returnType: void
    signature: void OrfDecoder::parseCFA() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:314,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:315,1
    - Dst: rawspeed::OrfDecoder::parseCFA
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:317,1
    - Dst: setMetaData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:319,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:321,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:322,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:324,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:325,1
    - Dst: static_cast<float>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:327,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:328,1
    - Dst: hasEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:330,1
    - Dst: getEntryRecursive
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:333,1
    - Dst: TiffEntry*::getRootIfdData
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:337,1
    - Dst: TiffEntry*::getU32
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:338,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:341,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:341,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:343,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:343,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:346,1
    - Dst: TiffEntry*::getFloat
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:348,1
    - Dst: TiffRootIFD::hasEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:354,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:354,1
    - Dst: TiffRootIFD::getEntry
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:356,1
    - Dst: static_cast<TiffTag>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:356,1
    - Dst: Array2DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:360,1
    - Dst: blackLevelSeparateStorage::data
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:360,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:362,1
    - Dst: cfa::getColorAt
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:364,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:378,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:378,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:381,1
    - Dst: TiffEntry*::getU16
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:381,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:386,1
    - Dst: rawspeed::OrfDecoder::getBitsPerPixel
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:387,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:391,1
    - Dst: blackLevelSeparate1D
      Src: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp:391,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - meta
    argTypes:
    - CameraMetaData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 397
    functionName: rawspeed::OrfDecoder::decodeMetaDataInternal
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
    functionUses: 0
    functionsReached:
    - hasEntryRecursive
    - TiffRootIFD::hasEntry
    - blackLevelSeparateStorage::data
    - getEntryRecursive
    - cfa::getColorAt
    - blackLevelSeparate::getAsArray1DRef
    - TiffEntry*::getRootIfdData
    - static_cast<float>
    - TiffEntry*::getFloat
    - TiffEntry*::getU16
    - TiffEntry*::getU32
    - ThrowRDE
    - rawspeed::OrfDecoder::parseCFA
    - static_cast<TiffTag>
    - TiffRootIFD::getEntry
    - setMetaData
    - blackLevelSeparate1D
    - rawspeed::OrfDecoder::getBitsPerPixel
    - Array2DRef
    - static_cast<unsigned>
    linkageType: ''
    returnType: void
    signature: void OrfDecoder::decodeMetaDataInternal(const CameraMetaData* meta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::DcsDecoder::DcsDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DcsDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::DcsDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' root'
    - file
    argTypes:
    - TiffRootIFDOwner
    - Buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: rawspeed::DcsDecoder::DcsDecoder
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DcsDecoder(TiffRootIFDOwner&& root, Buffer file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: rawspeed::DcsDecoder::getDecoderVersion
    functionSourceFile: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getDecoderVersion() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: MD5Test::MD5Test
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:47,1
    - Dst: GetParam
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: MD5Test::SetUp
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - GetParam
    linkageType: ''
    returnType: void
    signature: void SetUp() final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: MD5Test::anchor
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Test::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:389,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:390,1
    - Dst: strlen
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:391,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:391,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: TEST_P
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::md5::md5_hash
    - ASSERT_EQ
    - reinterpret_cast<const char*>
    - ASSERT_NO_THROW
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(MD5Test, CheckTestCaseSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NO_THROW
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:398,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:399,1
    - Dst: strlen
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:400,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:400,1
    - Dst: std::string_view
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:403,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:403,1
    - Dst: rawspeed::md5::MD5::MD5
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:404,1
    - Dst: auto::substr
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:405,1
    - Dst: auto::remove_prefix
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:406,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:406,1
    - Dst: auto::substr
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:407,1
    - Dst: auto::remove_prefix
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:408,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:408,1
    - Dst: rawspeed::md5::MD5::take
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:410,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:410,1
    - Dst: auto::data
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:410,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:411,1
    - Dst: rawspeed::md5::MD5::take
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:412,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:412,1
    - Dst: auto::data
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:412,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:413,1
    - Dst: rawspeed::md5::MD5::take
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:414,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:414,1
    - Dst: auto::data
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:414,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:415,1
    - Dst: rawspeed::md5::MD5::flush
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:416,1
    - Dst: ASSERT_EQ
      Src: /src/librawspeed/src/utilities/rstest/MD5Test.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 421
    functionName: TEST_P
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
    functionUses: 0
    functionsReached:
    - auto::substr
    - ASSERT_EQ
    - std::string_view
    - reinterpret_cast<const uint8_t*>
    - reinterpret_cast<const char*>
    - rawspeed::implicit_cast<int>
    - rawspeed::md5::MD5::MD5
    - auto::remove_prefix
    - rawspeed::md5::MD5::take
    - auto::data
    - rawspeed::md5::MD5::flush
    - ASSERT_NO_THROW
    - strlen
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(MD5Test, CheckTestCaseSetInParts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~MD5Hasher() noexcept
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MD5Hasher() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher(const MD5Hasher&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher(MD5Hasher&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator=(const MD5Hasher&)'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5Hasher
    signature: MD5Hasher & operator=(const MD5Hasher&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& operator=(MD5Hasher&&) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5Hasher
    signature: MD5Hasher & operator=(MD5Hasher&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:78,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - block_
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::md5::BufferCoalescer::FullBufferRef
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - invariant
    - Array1DRef<const uint8_t>::size
    - Array1DRef<const uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void FullBufferRef(Array1DRef<const uint8_t> block_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:100,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:100,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:102,1
    - Dst: rawspeed::md5::BufferCoalescer::FullBufferRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:103,1
    - Dst: rawspeed::md5::BufferCoalescer::take_block_impl
      Src: /src/librawspeed/src/utilities/rstest/md5.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: rawspeed::md5::BufferCoalescer::take_block_impl
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - invariant
    - rawspeed::md5::BufferCoalescer::take_block_impl
    - rawspeed::md5::BufferCoalescer::FullBufferRef
    linkageType: ''
    returnType: void
    signature: "void take_block_impl(NoBuffer& /*unused*/,\n                       Array1DRef<const
      uint8_t> message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:116,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:116,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:117,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:119,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:119,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: block::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: block::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:123,1
    - Dst: std::copy
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::end
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' arg'
    - message
    argTypes:
    - CoalescingBuffer
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: rawspeed::md5::BufferCoalescer::take_block_impl
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - Array1DRef
    - block::data
    - implicit_cast<int>
    - block::size
    - Array1DRef<const uint8_t>::begin
    - auto::begin
    - invariant
    - std::copy
    - Array1DRef<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void take_block_impl(CoalescingBuffer& arg,\n                       Array1DRef<const
      uint8_t> message) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: rawspeed::md5::BufferCoalescer::length
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - std::visit
    linkageType: ''
    returnType: int
    signature: int length() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::length
      Src: /src/librawspeed/src/utilities/rstest/md5.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: rawspeed::md5::BufferCoalescer::bytesAvaliable
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::BufferCoalescer::length
    linkageType: ''
    returnType: int
    signature: int bytesAvaliable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: rawspeed::md5::BufferCoalescer::blockIsEmpty
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::BufferCoalescer::bytesAvaliable
    linkageType: ''
    returnType: bool
    signature: bool blockIsEmpty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h: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: rawspeed::md5::BufferCoalescer::blockIsFull
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::BufferCoalescer::bytesAvaliable
    linkageType: ''
    returnType: bool
    signature: bool blockIsFull() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoBuffer
      Src: /src/librawspeed/src/utilities/rstest/md5.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: rawspeed::md5::BufferCoalescer::reset
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - NoBuffer
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:150,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:150,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:151,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:151,1
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:153,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:156,1
    - Dst: rawspeed::md5::BufferCoalescer::take_block_impl
      Src: /src/librawspeed/src/utilities/rstest/md5.h:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: rawspeed::md5::BufferCoalescer::take_block
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - std::visit
    - __builtin_unreachable
    - invariant
    - rawspeed::md5::BufferCoalescer::take_block_impl
    linkageType: ''
    returnType: void
    signature: void take_block(Array1DRef<const uint8_t> message) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:164,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:169,1
    - Dst: block::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:170,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: rawspeed::md5::BufferCoalescer::getAsFullBufferRef
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - std::visit
    - invariant
    - block::data
    - __builtin_unreachable
    linkageType: ''
    returnType: FullBufferRef
    signature: FullBufferRef getAsFullBufferRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: rawspeed::md5::MD5::reset
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: rawspeed::md5::MD5::bytesAvaliableInBlock
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - bytesAvaliable
    linkageType: ''
    returnType: int
    signature: int bytesAvaliableInBlock() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: rawspeed::md5::MD5::blockIsEmpty
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::blockIsEmpty
    linkageType: ''
    returnType: bool
    signature: bool blockIsEmpty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: rawspeed::md5::MD5::blockIsFull
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::blockIsFull
    linkageType: ''
    returnType: bool
    signature: bool blockIsFull() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void MD5() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: ~MD5() noexcept
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void ~MD5() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5(const MD5&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5(MD5&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: '& operator=(const MD5&)'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5
    signature: MD5 & operator=(const MD5&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: '& operator=(MD5&&) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5
    signature: MD5 & operator=(MD5&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:240,1
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:240,1
    - Dst: getAsFullBufferRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:242,1
    - Dst: rawspeed::md5::MD5Hasher::compress
      Src: /src/librawspeed/src/utilities/rstest/md5.h:243,1
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: rawspeed::md5::MD5::compressFullBlock
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::MD5::blockIsFull
    - getAsFullBufferRef
    - invariant
    - rawspeed::md5::MD5Hasher::compress
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void MD5::compressFullBlock() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:252,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:252,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:253,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:253,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:254,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:254,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:257,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: '&

      MD5::take_block(Array1DRef<const T> message) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - blockIsFull
    - invariant
    - bytesAvaliableInBlock
    - Array1DRef<const T>::size
    - take_block
    linkageType: ''
    returnType: MD5
    signature: 'MD5 &

      MD5::take_block(Array1DRef<const T> message) noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:267,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:267,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:269,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:269,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:271,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:272,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: '&

      MD5::take_full_block(Array1DRef<const T> message) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - blockIsFull
    - invariant
    - Array1DRef<const T>::size
    - blockIsEmpty
    - take_block
    linkageType: ''
    returnType: MD5
    signature: 'MD5 &

      MD5::take_full_block(Array1DRef<const T> message) noexcept'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:281,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:282,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:282,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:287,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:287,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:289,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:290,1
    - Dst: std::min<size_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:293,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:296,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:297,1
    - Dst: compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:298,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:301,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:304,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:305,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:307,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: take_full_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:311,1
    - Dst: compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:312,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:315,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:316,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:316,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:317,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:317,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:318,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:319,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - message
    - len
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 323
    functionName: "& MD5::take(const T* message,\n                                                     size_t
      len) noexcept"
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - Array1DRef
    - std::min<size_t>
    - implicit_cast<int>
    - blockIsFull
    - compressFullBlock
    - invariant
    - bytesAvaliableInBlock
    - take_full_block
    - blockIsEmpty
    - take_block
    - auto::size
    linkageType: ''
    returnType: MD5
    signature: "MD5 & MD5::take(const T* message,\n                                                     size_t
      len) noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:327,1
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:327,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:333,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:334,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: rawspeed::md5::MD5::compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:336,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:339,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:343,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:346,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: rawspeed::md5::MD5::compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:350,1
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 355
    functionName: rawspeed::md5::MD5::flush
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::compressFullBlock
    - std::array::size
    - rawspeed::md5::MD5::bytesAvaliableInBlock
    - static_cast<uint8_t>
    - rawspeed::md5::MD5::blockIsFull
    - std::array::data
    - invariant
    - rawspeed::md5::MD5::reset
    - take_block
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: MD5Hasher::state_type MD5::flush() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~MD5Hasher() noexcept
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MD5Hasher() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher(const MD5Hasher&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: rawspeed::md5::MD5Hasher::MD5Hasher
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5Hasher(MD5Hasher&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator=(const MD5Hasher&)'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5Hasher
    signature: MD5Hasher & operator=(const MD5Hasher&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& operator=(MD5Hasher&&) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5Hasher
    signature: MD5Hasher & operator=(MD5Hasher&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:77,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:78,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - block_
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: rawspeed::md5::BufferCoalescer::FullBufferRef
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - invariant
    - Array1DRef<const uint8_t>::size
    - Array1DRef<const uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void FullBufferRef(Array1DRef<const uint8_t> block_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:100,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:100,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:102,1
    - Dst: rawspeed::md5::BufferCoalescer::FullBufferRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:103,1
    - Dst: rawspeed::md5::BufferCoalescer::take_block_impl
      Src: /src/librawspeed/src/utilities/rstest/md5.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: rawspeed::md5::BufferCoalescer::take_block_impl
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 3
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - invariant
    - rawspeed::md5::BufferCoalescer::take_block_impl
    - rawspeed::md5::BufferCoalescer::FullBufferRef
    linkageType: ''
    returnType: void
    signature: "void take_block_impl(NoBuffer& /*unused*/,\n                       Array1DRef<const
      uint8_t> message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:116,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:116,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:117,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:117,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:119,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:119,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: block::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: block::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:122,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:123,1
    - Dst: std::copy
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::end
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: auto::begin
      Src: /src/librawspeed/src/utilities/rstest/md5.h:124,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' arg'
    - message
    argTypes:
    - CoalescingBuffer
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: rawspeed::md5::BufferCoalescer::take_block_impl
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 3
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - Array1DRef
    - block::data
    - implicit_cast<int>
    - block::size
    - Array1DRef<const uint8_t>::begin
    - auto::begin
    - invariant
    - std::copy
    - Array1DRef<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void take_block_impl(CoalescingBuffer& arg,\n                       Array1DRef<const
      uint8_t> message) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: rawspeed::md5::BufferCoalescer::length
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - std::visit
    linkageType: ''
    returnType: int
    signature: int length() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::length
      Src: /src/librawspeed/src/utilities/rstest/md5.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: rawspeed::md5::BufferCoalescer::bytesAvaliable
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 2
    functionsReached:
    - rawspeed::md5::BufferCoalescer::length
    linkageType: ''
    returnType: int
    signature: int bytesAvaliable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: rawspeed::md5::BufferCoalescer::blockIsEmpty
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::BufferCoalescer::bytesAvaliable
    linkageType: ''
    returnType: bool
    signature: bool blockIsEmpty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::BufferCoalescer::bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h: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: rawspeed::md5::BufferCoalescer::blockIsFull
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - rawspeed::md5::BufferCoalescer::bytesAvaliable
    linkageType: ''
    returnType: bool
    signature: bool blockIsFull() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoBuffer
      Src: /src/librawspeed/src/utilities/rstest/md5.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: rawspeed::md5::BufferCoalescer::reset
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - NoBuffer
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:150,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:150,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:151,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:151,1
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:153,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:156,1
    - Dst: rawspeed::md5::BufferCoalescer::take_block_impl
      Src: /src/librawspeed/src/utilities/rstest/md5.h:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: rawspeed::md5::BufferCoalescer::take_block
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - std::visit
    - __builtin_unreachable
    - invariant
    - rawspeed::md5::BufferCoalescer::take_block_impl
    linkageType: ''
    returnType: void
    signature: void take_block(Array1DRef<const uint8_t> message) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/librawspeed/src/utilities/rstest/md5.h:164,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:169,1
    - Dst: block::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:170,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: rawspeed::md5::BufferCoalescer::getAsFullBufferRef
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - std::visit
    - invariant
    - block::data
    - __builtin_unreachable
    linkageType: ''
    returnType: FullBufferRef
    signature: FullBufferRef getAsFullBufferRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: rawspeed::md5::MD5::reset
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 5
    functionsReached:
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytesAvaliable
      Src: /src/librawspeed/src/utilities/rstest/md5.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: rawspeed::md5::MD5::bytesAvaliableInBlock
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - bytesAvaliable
    linkageType: ''
    returnType: int
    signature: int bytesAvaliableInBlock() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: rawspeed::md5::MD5::blockIsEmpty
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 2
    functionsReached:
    - rawspeed::md5::MD5::blockIsEmpty
    linkageType: ''
    returnType: bool
    signature: bool blockIsEmpty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: rawspeed::md5::MD5::blockIsFull
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 4
    functionsReached:
    - rawspeed::md5::MD5::blockIsFull
    linkageType: ''
    returnType: bool
    signature: bool blockIsFull() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void MD5() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: ~MD5() noexcept
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - invariant
    linkageType: ''
    returnType: void
    signature: void ~MD5() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5(const MD5&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: rawspeed::md5::MD5::MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5(MD5&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: '& operator=(const MD5&)'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5
    signature: MD5 & operator=(const MD5&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: '& operator=(MD5&&) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MD5
    signature: MD5 & operator=(MD5&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:240,1
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:240,1
    - Dst: getAsFullBufferRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:242,1
    - Dst: rawspeed::md5::MD5Hasher::compress
      Src: /src/librawspeed/src/utilities/rstest/md5.h:243,1
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: rawspeed::md5::MD5::compressFullBlock
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::blockIsFull
    - getAsFullBufferRef
    - invariant
    - rawspeed::md5::MD5Hasher::compress
    - rawspeed::md5::MD5::reset
    linkageType: ''
    returnType: void
    signature: void MD5::compressFullBlock() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:252,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:252,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:253,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:253,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:254,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:254,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:255,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:257,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: '&

      MD5::take_block(Array1DRef<const T> message) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - blockIsFull
    - invariant
    - bytesAvaliableInBlock
    - Array1DRef<const T>::size
    - take_block
    linkageType: ''
    returnType: MD5
    signature: 'MD5 &

      MD5::take_block(Array1DRef<const T> message) noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:267,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:267,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:269,1
    - Dst: Array1DRef<const T>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:269,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:271,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:272,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Array1DRef<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: '&

      MD5::take_full_block(Array1DRef<const T> message) noexcept'
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - blockIsFull
    - invariant
    - Array1DRef<const T>::size
    - blockIsEmpty
    - take_block
    linkageType: ''
    returnType: MD5
    signature: 'MD5 &

      MD5::take_full_block(Array1DRef<const T> message) noexcept'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:281,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:282,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:282,1
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.h:287,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:287,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:289,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:290,1
    - Dst: std::min<size_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:291,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:293,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:294,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:296,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:297,1
    - Dst: compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:298,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:301,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:304,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:305,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:307,1
    - Dst: auto::getCrop
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:309,1
    - Dst: take_full_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:311,1
    - Dst: compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:312,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:315,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:316,1
    - Dst: blockIsEmpty
      Src: /src/librawspeed/src/utilities/rstest/md5.h:316,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:317,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:317,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:318,1
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:319,1
    - Dst: blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - message
    - len
    argTypes:
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 323
    functionName: "& MD5::take(const T* message,\n                                                     size_t
      len) noexcept"
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 0
    functionsReached:
    - auto::getCrop
    - Array1DRef
    - std::min<size_t>
    - implicit_cast<int>
    - blockIsFull
    - compressFullBlock
    - invariant
    - bytesAvaliableInBlock
    - take_full_block
    - blockIsEmpty
    - take_block
    - auto::size
    linkageType: ''
    returnType: MD5
    signature: "MD5 & MD5::take(const T* message,\n                                                     size_t
      len) noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.h:327,1
    - Dst: rawspeed::md5::MD5::blockIsFull
      Src: /src/librawspeed/src/utilities/rstest/md5.h:327,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:330,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:333,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:334,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:335,1
    - Dst: rawspeed::md5::MD5::compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:336,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:339,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: rawspeed::md5::MD5::bytesAvaliableInBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:340,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:343,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.h:346,1
    - Dst: take_block
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: std::array::size
      Src: /src/librawspeed/src/utilities/rstest/md5.h:349,1
    - Dst: rawspeed::md5::MD5::compressFullBlock
      Src: /src/librawspeed/src/utilities/rstest/md5.h:350,1
    - Dst: rawspeed::md5::MD5::reset
      Src: /src/librawspeed/src/utilities/rstest/md5.h:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 355
    functionName: rawspeed::md5::MD5::flush
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.h
    functionUses: 1
    functionsReached:
    - rawspeed::md5::MD5::compressFullBlock
    - std::array::size
    - rawspeed::md5::MD5::bytesAvaliableInBlock
    - static_cast<uint8_t>
    - rawspeed::md5::MD5::blockIsFull
    - std::array::data
    - invariant
    - rawspeed::md5::MD5::reset
    - take_block
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: MD5Hasher::state_type MD5::flush() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - time_
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch(const char* msg, int64_t time_)
  - 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: rawspeed::rstest::RstestHashMismatch::anchor
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:118,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:119,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:130,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:132,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:134,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:136,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: vector::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: rawspeed::rstest::imgDataHash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::md5::md5_hash
    - rawspeed::Array2DRef::height
    - img
    - vector::size
    - reinterpret_cast<const uint8_t*>
    - rawspeed::Array2DRef::width
    - getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: md5::MD5Hasher::state_type
    signature: md5::MD5Hasher::state_type imgDataHash(const RawImage& raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:152,1
    - Dst: va_start
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:157,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: va_end
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:159,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - oss
    - format
    argTypes:
    - ostringstream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: rawspeed::rstest::APPEND
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - vsnprintf
    - va_end
    - std::array::data
    - format
    - va_start
    linkageType: ''
    returnType: void
    signature: "void APPEND(ostringstream* oss,\n                                                  const
      char* format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:168,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: metadata::make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: metadata::model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: metadata::mode::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: metadata::canonical_make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: metadata::canonical_model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: metadata::canonical_alias::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: metadata::canonical_id::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:178,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:179,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:181,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:183,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:185,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:186,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:188,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:190,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:193,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:195,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:197,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:200,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:202,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:204,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:209,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:211,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:212,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:213,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:216,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:218,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:220,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: cfa::asString
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: cfa::getDcrawFilter
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: getBpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:227,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:228,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:229,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:230,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:231,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:239,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:241,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:242,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:244,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:245,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:247,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:251,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:254,1
    - Dst: rawspeed::rstest::imgDataHash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:256,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:257,1
    - Dst: rawspeed::md5::hash_to_string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:258,1
    - Dst: getErrors
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:260,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - ' r'
    - noSamples
    argTypes:
    - RawImage
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 264
    functionName: rawspeed::rstest::img_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::md5::hash_to_string
    - implicit_cast<double>
    - getUncroppedDim
    - getErrors
    - metadata::canonical_model::c_str
    - getDataType
    - blackLevelSeparate::width
    - getCpp
    - ostringstream::str
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - cfa::getDcrawFilter
    - metadata::mode::c_str
    - getBpp
    - rawspeed::rstest::APPEND
    - metadata::model::c_str
    - c_str
    - metadata::make::c_str
    - metadata::colorMatrix::empty
    - rawspeed::rstest::imgDataHash
    - metadata::canonical_make::c_str
    - metadata::canonical_id::c_str
    - cfa::asString
    - getCropOffset
    - blackLevelSeparate::height
    - metadata::canonical_alias::c_str
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string img_hash(const RawImage& r, bool noSamples)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:272,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:275,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:280,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:282,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:285,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 295
    functionName: rawspeed::rstest::writePPM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - fopen
    - img
    - fprintf
    - std::string::c_str
    - getUncroppedDim
    - getU16BE
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - ferror
    - fwrite
    - ThrowFIE
    - c_str
    - file_ptr::get
    linkageType: ''
    returnType: void
    signature: void writePPM(const RawImage& raw, const std::string& fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:300,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:303,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:308,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: roundUp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:323,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:329,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:330,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:337,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:340,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts:
    - condition: (ftell(f.get()) == len)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(paddedLen, dataAlignment))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen == len)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(len, dataAlignment))
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(ftell(f.get()), dataAlignment))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(realLen + padding, dataAlignment))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen > len)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    constantsTouched: []
    func_position:
      end: 353
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 353
    functionName: rawspeed::rstest::writePFM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - img
    - fprintf
    - rawspeed::implicit_cast<int>
    - getUncroppedDim
    - getCpp
    - ThrowFIE
    - rawspeed::isAligned
    - file_ptr::get
    - getU32LE
    - getF32DataAsUncroppedArray2DRef
    - fopen
    - std::string::c_str
    - roundUp
    - fwrite
    - c_str
    - ftell
    - assert
    - std::bit_cast<float>
    - ferror
    linkageType: ''
    returnType: void
    signature: void writePFM(const RawImage& raw, const std::string& fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:356,1
    - Dst: rawspeed::rstest::writePPM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:358,1
    - Dst: rawspeed::rstest::writePFM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:361,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: rawspeed::rstest::writeImage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::rstest::writePPM
    - getDataType
    - __builtin_unreachable
    - rawspeed::rstest::writePFM
    linkageType: ''
    returnType: void
    signature: void writeImage(const RawImage& raw, const std::string& fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:376,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:377,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:381,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:388,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:392,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:396,1
    - Dst: MMapReader::getAsBuffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:399,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:401,1
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:407,1
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:414,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:418,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:421,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:422,1
    - Dst: t
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:426,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:427,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:439,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:441,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:444,1
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:448,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:451,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:452,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:457,1
    - Dst: RstestHashMismatch
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - ' filename'
    - metadata
    - ' o'
    argTypes:
    - std::string
    - CameraMetaData*
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 463
    functionName: rawspeed::rstest::process
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - t
    - RstestHashMismatch
    - auto::decodeMetaData
    - auto::checkSupport
    - rawspeed::rstest::writeImage
    - setw
    - FileReader::readFile
    - RawParser::getDecoder
    - auto::decodeRaw
    - rawspeed::rstest::img_hash
    - std::tie
    - rawspeed::Buffer::getSize
    - istreambuf_iterator<char>
    - MMapReader::getAsBuffer
    - ifstream::good
    - rawspeed::Buffer::Buffer
    - __has_feature
    - c_str
    linkageType: ''
    returnType: int64_t
    signature: "int64_t process(const std::string& filename, const CameraMetaData*
      metadata,\n                const options& o)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:469,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:478,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: system
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' failedTests'
    - ' o'
    argTypes:
    - map<std::string, std::string, std::less<>>
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 538
    functionName: rawspeed::rstest::results
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - ifstream
    - empty
    - std::string::c_str
    - size
    - system
    linkageType: ''
    returnType: int
    signature: "int results(const map<std::string, std::string, std::less<>>& failedTests,\n
      \           const options& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: rawspeed::rstest::usage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage(const char* progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - time_
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch(const char* msg, int64_t time_)
  - 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: rawspeed::rstest::RstestHashMismatch::anchor
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:118,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:119,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:130,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:132,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:134,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:136,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: vector::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: rawspeed::rstest::imgDataHash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::md5::md5_hash
    - rawspeed::Array2DRef::height
    - img
    - vector::size
    - reinterpret_cast<const uint8_t*>
    - rawspeed::Array2DRef::width
    - getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: md5::MD5Hasher::state_type
    signature: md5::MD5Hasher::state_type imgDataHash(const RawImage& raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:152,1
    - Dst: va_start
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:157,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: va_end
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:159,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - oss
    - format
    argTypes:
    - ostringstream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: rawspeed::rstest::APPEND
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - vsnprintf
    - va_end
    - std::array::data
    - format
    - va_start
    linkageType: ''
    returnType: void
    signature: "void APPEND(ostringstream* oss,\n                                                  const
      char* format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:168,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: metadata::make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: metadata::model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: metadata::mode::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: metadata::canonical_make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: metadata::canonical_model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: metadata::canonical_alias::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: metadata::canonical_id::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:178,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:179,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:181,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:183,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:185,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:186,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:188,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:190,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:193,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:195,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:197,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:200,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:202,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:204,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:209,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:211,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:212,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:213,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:216,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:218,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:220,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: cfa::asString
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: cfa::getDcrawFilter
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: getBpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:227,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:228,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:229,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:230,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:231,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:239,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:241,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:242,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:244,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:245,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:247,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:251,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:254,1
    - Dst: rawspeed::rstest::imgDataHash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:256,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:257,1
    - Dst: rawspeed::md5::hash_to_string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:258,1
    - Dst: getErrors
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:260,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - ' r'
    - noSamples
    argTypes:
    - RawImage
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 264
    functionName: rawspeed::rstest::img_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::md5::hash_to_string
    - implicit_cast<double>
    - getUncroppedDim
    - getErrors
    - metadata::canonical_model::c_str
    - getDataType
    - blackLevelSeparate::width
    - getCpp
    - ostringstream::str
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - cfa::getDcrawFilter
    - metadata::mode::c_str
    - getBpp
    - rawspeed::rstest::APPEND
    - metadata::model::c_str
    - c_str
    - metadata::make::c_str
    - metadata::colorMatrix::empty
    - rawspeed::rstest::imgDataHash
    - metadata::canonical_make::c_str
    - metadata::canonical_id::c_str
    - cfa::asString
    - getCropOffset
    - blackLevelSeparate::height
    - metadata::canonical_alias::c_str
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string img_hash(const RawImage& r, bool noSamples)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:272,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:275,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:280,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:282,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:285,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 295
    functionName: rawspeed::rstest::writePPM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - fopen
    - img
    - fprintf
    - std::string::c_str
    - getUncroppedDim
    - getU16BE
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - ferror
    - fwrite
    - ThrowFIE
    - c_str
    - file_ptr::get
    linkageType: ''
    returnType: void
    signature: void writePPM(const RawImage& raw, const std::string& fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:300,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:303,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:308,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: roundUp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:323,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:329,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:330,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:337,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:340,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts:
    - condition: (ftell(f.get()) == len)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(paddedLen, dataAlignment))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen == len)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(len, dataAlignment))
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(ftell(f.get()), dataAlignment))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(realLen + padding, dataAlignment))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen > len)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    constantsTouched: []
    func_position:
      end: 353
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 353
    functionName: rawspeed::rstest::writePFM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - img
    - fprintf
    - rawspeed::implicit_cast<int>
    - getUncroppedDim
    - getCpp
    - ThrowFIE
    - rawspeed::isAligned
    - file_ptr::get
    - getU32LE
    - getF32DataAsUncroppedArray2DRef
    - fopen
    - std::string::c_str
    - roundUp
    - fwrite
    - c_str
    - ftell
    - assert
    - std::bit_cast<float>
    - ferror
    linkageType: ''
    returnType: void
    signature: void writePFM(const RawImage& raw, const std::string& fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:356,1
    - Dst: rawspeed::rstest::writePPM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:358,1
    - Dst: rawspeed::rstest::writePFM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:361,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: rawspeed::rstest::writeImage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::rstest::writePPM
    - getDataType
    - __builtin_unreachable
    - rawspeed::rstest::writePFM
    linkageType: ''
    returnType: void
    signature: void writeImage(const RawImage& raw, const std::string& fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:376,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:377,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:381,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:388,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:392,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:396,1
    - Dst: MMapReader::getAsBuffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:399,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:401,1
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:407,1
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:414,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:418,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:421,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:422,1
    - Dst: t
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:426,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:427,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:439,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:441,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:444,1
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:448,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:451,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:452,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:457,1
    - Dst: RstestHashMismatch
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - ' filename'
    - metadata
    - ' o'
    argTypes:
    - std::string
    - CameraMetaData*
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 463
    functionName: rawspeed::rstest::process
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - t
    - RstestHashMismatch
    - auto::decodeMetaData
    - auto::checkSupport
    - rawspeed::rstest::writeImage
    - setw
    - FileReader::readFile
    - RawParser::getDecoder
    - auto::decodeRaw
    - rawspeed::rstest::img_hash
    - std::tie
    - rawspeed::Buffer::getSize
    - istreambuf_iterator<char>
    - MMapReader::getAsBuffer
    - ifstream::good
    - rawspeed::Buffer::Buffer
    - __has_feature
    - c_str
    linkageType: ''
    returnType: int64_t
    signature: "int64_t process(const std::string& filename, const CameraMetaData*
      metadata,\n                const options& o)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:469,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:478,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: system
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' failedTests'
    - ' o'
    argTypes:
    - map<std::string, std::string, std::less<>>
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 538
    functionName: rawspeed::rstest::results
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - ifstream
    - empty
    - std::string::c_str
    - size
    - system
    linkageType: ''
    returnType: int
    signature: "int results(const map<std::string, std::string, std::less<>>& failedTests,\n
      \           const options& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: rawspeed::rstest::usage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage(const char* progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:548,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:550,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:554,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:555,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:555,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:558,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:564,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:564,1
    - Dst: rawspeed::rstest::usage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:565,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:565,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:568,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:569,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:570,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:585,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:586,1
    - Dst: rawspeed::rstest::process
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:591,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:591,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: what
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:602,1
    - Dst: map::try_emplace
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:605,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:605,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:609,1
    - Dst: rawspeed::implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:614,1
    - Dst: rawspeed::rstest::results
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:617,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - argc_
    - argv_
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 618
    functionName: rawspeed::rstest::main
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    - map::try_emplace
    - rawspeed::rstest::process
    - rawspeed::implicit_cast<double>
    - __has_feature
    - rawspeed::rstest::usage
    - __builtin_unreachable
    - argv
    - rawspeed::rstest::results
    - std::string
    - what
    - rawspeed::Buffer::getAsArray1DRef
    - auto::size
    linkageType: ''
    returnType: int
    signature: int main(int argc_, char** argv_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - time_
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch(const char* msg, int64_t time_)
  - 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: rawspeed::rstest::RstestHashMismatch::anchor
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:118,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:119,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:130,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:132,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:134,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:136,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: vector::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: rawspeed::rstest::imgDataHash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::md5::md5_hash
    - rawspeed::Array2DRef::height
    - img
    - vector::size
    - reinterpret_cast<const uint8_t*>
    - rawspeed::Array2DRef::width
    - getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: md5::MD5Hasher::state_type
    signature: md5::MD5Hasher::state_type imgDataHash(const RawImage& raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:152,1
    - Dst: va_start
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:157,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: va_end
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:159,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - oss
    - format
    argTypes:
    - ostringstream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: rawspeed::rstest::APPEND
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - vsnprintf
    - va_end
    - std::array::data
    - format
    - va_start
    linkageType: ''
    returnType: void
    signature: "void APPEND(ostringstream* oss,\n                                                  const
      char* format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:168,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: metadata::make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: metadata::model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: metadata::mode::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: metadata::canonical_make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: metadata::canonical_model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: metadata::canonical_alias::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: metadata::canonical_id::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:178,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:179,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:181,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:183,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:185,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:186,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:188,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:190,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:193,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:195,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:197,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:200,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:202,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:204,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:209,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:211,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:212,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:213,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:216,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:218,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:220,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: cfa::asString
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: cfa::getDcrawFilter
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: getBpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:227,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:228,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:229,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:230,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:231,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:239,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:241,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:242,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:244,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:245,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:247,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:251,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:254,1
    - Dst: rawspeed::rstest::imgDataHash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:256,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:257,1
    - Dst: rawspeed::md5::hash_to_string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:258,1
    - Dst: getErrors
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:260,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - ' r'
    - noSamples
    argTypes:
    - RawImage
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 264
    functionName: rawspeed::rstest::img_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::md5::hash_to_string
    - implicit_cast<double>
    - getUncroppedDim
    - getErrors
    - metadata::canonical_model::c_str
    - getDataType
    - blackLevelSeparate::width
    - getCpp
    - ostringstream::str
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - cfa::getDcrawFilter
    - metadata::mode::c_str
    - getBpp
    - rawspeed::rstest::APPEND
    - metadata::model::c_str
    - c_str
    - metadata::make::c_str
    - metadata::colorMatrix::empty
    - rawspeed::rstest::imgDataHash
    - metadata::canonical_make::c_str
    - metadata::canonical_id::c_str
    - cfa::asString
    - getCropOffset
    - blackLevelSeparate::height
    - metadata::canonical_alias::c_str
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string img_hash(const RawImage& r, bool noSamples)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:272,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:275,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:280,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:282,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:285,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 295
    functionName: rawspeed::rstest::writePPM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - fopen
    - img
    - fprintf
    - std::string::c_str
    - getUncroppedDim
    - getU16BE
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - ferror
    - fwrite
    - ThrowFIE
    - c_str
    - file_ptr::get
    linkageType: ''
    returnType: void
    signature: void writePPM(const RawImage& raw, const std::string& fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:300,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:303,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:308,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: roundUp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:323,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:329,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:330,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:337,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:340,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts:
    - condition: (ftell(f.get()) == len)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(paddedLen, dataAlignment))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen == len)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(len, dataAlignment))
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(ftell(f.get()), dataAlignment))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(realLen + padding, dataAlignment))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen > len)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    constantsTouched: []
    func_position:
      end: 353
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 353
    functionName: rawspeed::rstest::writePFM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - img
    - fprintf
    - rawspeed::implicit_cast<int>
    - getUncroppedDim
    - getCpp
    - ThrowFIE
    - rawspeed::isAligned
    - file_ptr::get
    - getU32LE
    - getF32DataAsUncroppedArray2DRef
    - fopen
    - std::string::c_str
    - roundUp
    - fwrite
    - c_str
    - ftell
    - assert
    - std::bit_cast<float>
    - ferror
    linkageType: ''
    returnType: void
    signature: void writePFM(const RawImage& raw, const std::string& fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:356,1
    - Dst: rawspeed::rstest::writePPM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:358,1
    - Dst: rawspeed::rstest::writePFM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:361,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: rawspeed::rstest::writeImage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::rstest::writePPM
    - getDataType
    - __builtin_unreachable
    - rawspeed::rstest::writePFM
    linkageType: ''
    returnType: void
    signature: void writeImage(const RawImage& raw, const std::string& fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:376,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:377,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:381,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:388,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:392,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:396,1
    - Dst: MMapReader::getAsBuffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:399,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:401,1
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:407,1
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:414,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:418,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:421,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:422,1
    - Dst: t
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:426,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:427,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:439,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:441,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:444,1
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:448,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:451,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:452,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:457,1
    - Dst: RstestHashMismatch
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - ' filename'
    - metadata
    - ' o'
    argTypes:
    - std::string
    - CameraMetaData*
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 463
    functionName: rawspeed::rstest::process
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - t
    - RstestHashMismatch
    - auto::decodeMetaData
    - auto::checkSupport
    - rawspeed::rstest::writeImage
    - setw
    - FileReader::readFile
    - RawParser::getDecoder
    - auto::decodeRaw
    - rawspeed::rstest::img_hash
    - std::tie
    - rawspeed::Buffer::getSize
    - istreambuf_iterator<char>
    - MMapReader::getAsBuffer
    - ifstream::good
    - rawspeed::Buffer::Buffer
    - __has_feature
    - c_str
    linkageType: ''
    returnType: int64_t
    signature: "int64_t process(const std::string& filename, const CameraMetaData*
      metadata,\n                const options& o)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:469,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:478,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: system
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' failedTests'
    - ' o'
    argTypes:
    - map<std::string, std::string, std::less<>>
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 538
    functionName: rawspeed::rstest::results
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - ifstream
    - empty
    - std::string::c_str
    - size
    - system
    linkageType: ''
    returnType: int
    signature: "int results(const map<std::string, std::string, std::less<>>& failedTests,\n
      \           const options& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: rawspeed::rstest::usage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage(const char* progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msg
    - time_
    argTypes:
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch(const char* msg, int64_t time_)
  - 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: rawspeed::rstest::RstestHashMismatch::anchor
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RstestHashMismatch::anchor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:118,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:119,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:130,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:132,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:134,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:135,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:136,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:139,1
    - Dst: vector::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' raw'
    argTypes:
    - RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: rawspeed::rstest::imgDataHash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::md5::md5_hash
    - rawspeed::Array2DRef::height
    - img
    - vector::size
    - reinterpret_cast<const uint8_t*>
    - rawspeed::Array2DRef::width
    - getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: md5::MD5Hasher::state_type
    signature: md5::MD5Hasher::state_type imgDataHash(const RawImage& raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:152,1
    - Dst: va_start
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:157,1
    - Dst: vsnprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:158,1
    - Dst: va_end
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:159,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - oss
    - format
    argTypes:
    - ostringstream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: rawspeed::rstest::APPEND
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - vsnprintf
    - va_end
    - std::array::data
    - format
    - va_start
    linkageType: ''
    returnType: void
    signature: "void APPEND(ostringstream* oss,\n                                                  const
      char* format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:168,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: metadata::make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:169,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: metadata::model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:170,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: metadata::mode::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:171,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: metadata::canonical_make::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:173,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: metadata::canonical_model::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:174,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: metadata::canonical_alias::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:175,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: metadata::canonical_id::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:176,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:178,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:179,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:181,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:183,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:185,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:186,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:188,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:190,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::width
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:192,1
    - Dst: blackLevelSeparate::height
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:193,1
    - Dst: blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:194,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:195,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:197,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:200,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:202,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:204,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:207,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:209,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:211,1
    - Dst: metadata::colorMatrix::empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:212,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:213,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:216,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:218,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:220,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: cfa::asString
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:221,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: cfa::getDcrawFilter
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:222,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: getBpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:223,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:224,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:225,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:227,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:228,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:229,1
    - Dst: getCropOffset
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:230,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:231,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:239,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:241,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:242,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:244,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:245,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:247,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:251,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:254,1
    - Dst: rawspeed::rstest::imgDataHash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:256,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:257,1
    - Dst: rawspeed::md5::hash_to_string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:258,1
    - Dst: getErrors
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:260,1
    - Dst: rawspeed::rstest::APPEND
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:261,1
    - Dst: ostringstream::str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - ' r'
    - noSamples
    argTypes:
    - RawImage
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 264
    functionName: rawspeed::rstest::img_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::md5::hash_to_string
    - implicit_cast<double>
    - getUncroppedDim
    - getErrors
    - metadata::canonical_model::c_str
    - getDataType
    - blackLevelSeparate::width
    - getCpp
    - ostringstream::str
    - blackLevelSeparate::getAsArray1DRef
    - auto::size
    - cfa::getDcrawFilter
    - metadata::mode::c_str
    - getBpp
    - rawspeed::rstest::APPEND
    - metadata::model::c_str
    - c_str
    - metadata::make::c_str
    - metadata::colorMatrix::empty
    - rawspeed::rstest::imgDataHash
    - metadata::canonical_make::c_str
    - metadata::canonical_id::c_str
    - cfa::asString
    - getCropOffset
    - blackLevelSeparate::height
    - metadata::canonical_alias::c_str
    - static_cast<unsigned>
    linkageType: ''
    returnType: std::string
    signature: std::string img_hash(const RawImage& r, bool noSamples)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:270,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:272,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:275,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:278,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:279,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:280,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:282,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:285,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: getU16BE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:289,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:291,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:292,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 295
    functionName: rawspeed::rstest::writePPM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - fopen
    - img
    - fprintf
    - std::string::c_str
    - getUncroppedDim
    - getU16BE
    - getU16DataAsUncroppedArray2DRef
    - getCpp
    - ferror
    - fwrite
    - ThrowFIE
    - c_str
    - file_ptr::get
    linkageType: ''
    returnType: void
    signature: void writePPM(const RawImage& raw, const std::string& fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:298,1
    - Dst: getUncroppedDim
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:300,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:303,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:306,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:307,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:308,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: roundUp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:317,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:318,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:319,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:323,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:324,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:327,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:328,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:329,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:330,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:333,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:334,1
    - Dst: assert
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: ftell
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:335,1
    - Dst: getCpp
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:337,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:340,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: std::bit_cast<float>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: getU32LE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:347,1
    - Dst: fwrite
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:349,1
    - Dst: ferror
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: file_ptr::get
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:350,1
    - Dst: ThrowFIE
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts:
    - condition: (ftell(f.get()) == len)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (padding >= 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(paddedLen, dataAlignment))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen == len)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(len, dataAlignment))
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(ftell(f.get()), dataAlignment))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (rawspeed::isAligned(realLen + padding, dataAlignment))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - condition: (paddedLen > len)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    constantsTouched: []
    func_position:
      end: 353
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 353
    functionName: rawspeed::rstest::writePFM
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - img
    - fprintf
    - rawspeed::implicit_cast<int>
    - getUncroppedDim
    - getCpp
    - ThrowFIE
    - rawspeed::isAligned
    - file_ptr::get
    - getU32LE
    - getF32DataAsUncroppedArray2DRef
    - fopen
    - std::string::c_str
    - roundUp
    - fwrite
    - c_str
    - ftell
    - assert
    - std::bit_cast<float>
    - ferror
    linkageType: ''
    returnType: void
    signature: void writePFM(const RawImage& raw, const std::string& fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getDataType
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:356,1
    - Dst: rawspeed::rstest::writePPM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:358,1
    - Dst: rawspeed::rstest::writePFM
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:361,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' raw'
    - ' fn'
    argTypes:
    - RawImage
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: rawspeed::rstest::writeImage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::rstest::writePPM
    - getDataType
    - __builtin_unreachable
    - rawspeed::rstest::writePFM
    linkageType: ''
    returnType: void
    signature: void writeImage(const RawImage& raw, const std::string& fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:376,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:377,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:381,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:388,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:392,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:396,1
    - Dst: MMapReader::getAsBuffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:399,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:401,1
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:407,1
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:408,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:414,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:418,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:421,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:422,1
    - Dst: t
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:426,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:427,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:431,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: setw
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:432,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:439,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:441,1
    - Dst: rawspeed::rstest::img_hash
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:444,1
    - Dst: ifstream::good
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:448,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:451,1
    - Dst: istreambuf_iterator<char>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:452,1
    - Dst: rawspeed::rstest::writeImage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:457,1
    - Dst: RstestHashMismatch
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - ' filename'
    - metadata
    - ' o'
    argTypes:
    - std::string
    - CameraMetaData*
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 463
    functionName: rawspeed::rstest::process
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - t
    - RstestHashMismatch
    - auto::decodeMetaData
    - auto::checkSupport
    - rawspeed::rstest::writeImage
    - setw
    - FileReader::readFile
    - RawParser::getDecoder
    - auto::decodeRaw
    - rawspeed::rstest::img_hash
    - std::tie
    - rawspeed::Buffer::getSize
    - istreambuf_iterator<char>
    - MMapReader::getAsBuffer
    - ifstream::good
    - rawspeed::Buffer::Buffer
    - __has_feature
    - c_str
    linkageType: ''
    returnType: int64_t
    signature: "int64_t process(const std::string& filename, const CameraMetaData*
      metadata,\n                const options& o)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:469,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:478,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: ifstream
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:489,1
    - Dst: system
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' failedTests'
    - ' o'
    argTypes:
    - map<std::string, std::string, std::less<>>
    - options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 538
    functionName: rawspeed::rstest::results
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached:
    - ifstream
    - empty
    - std::string::c_str
    - size
    - system
    linkageType: ''
    returnType: int
    signature: "int results(const map<std::string, std::string, std::less<>>& failedTests,\n
      \           const options& o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: rawspeed::rstest::usage
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage(const char* progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:548,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:550,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:554,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:555,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:555,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:558,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:564,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:564,1
    - Dst: rawspeed::rstest::usage
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:565,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:565,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:568,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:569,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:570,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:585,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:586,1
    - Dst: rawspeed::rstest::process
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:591,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:591,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: what
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:601,1
    - Dst: __has_feature
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:602,1
    - Dst: map::try_emplace
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:605,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:605,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:609,1
    - Dst: rawspeed::implicit_cast<double>
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:614,1
    - Dst: rawspeed::rstest::results
      Src: /src/librawspeed/src/utilities/rstest/rstest.cpp:617,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - argc_
    - argv_
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 618
    functionName: rawspeed::rstest::main
    functionSourceFile: /src/librawspeed/src/utilities/rstest/rstest.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    - map::try_emplace
    - rawspeed::rstest::process
    - rawspeed::implicit_cast<double>
    - __has_feature
    - rawspeed::rstest::usage
    - __builtin_unreachable
    - argv
    - rawspeed::rstest::results
    - std::string
    - what
    - rawspeed::Buffer::getAsArray1DRef
    - auto::size
    linkageType: ''
    returnType: int
    signature: int main(int argc_, char** argv_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:33,1
    - Dst: range
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:33,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:38,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:41,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:41,1
    - Dst: counters::insert
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:42,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:44,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:44,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:48,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: BM_MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::md5::md5_hash
    - std::vector::data
    - rawspeed::implicit_cast<size_t>
    - std::vector::size
    - benchmark::Counter
    - benchmark::DoNotOptimize
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_MD5(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:56,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:61,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:62,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:66,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:68,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:33,1
    - Dst: range
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:33,1
    - Dst: rawspeed::md5::md5_hash
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: std::vector::data
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:37,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:38,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:41,1
    - Dst: std::vector::size
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:41,1
    - Dst: counters::insert
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:42,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:44,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:44,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:48,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: BM_MD5
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::md5::md5_hash
    - std::vector::data
    - rawspeed::implicit_cast<size_t>
    - std::vector::size
    - benchmark::Counter
    - benchmark::DoNotOptimize
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_MD5(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:56,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:61,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:62,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:66,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:68,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:46,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:46,1
    - Dst: block
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:52,1
    - Dst: LOADSCHEDULE
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:56,1
    - Dst: ROTL32
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:66,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:71,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:76,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:81,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:86,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:97,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:98,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:99,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:100,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:101,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:102,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:103,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:104,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:105,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:106,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:107,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:108,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:109,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:110,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:111,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:112,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:113,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:114,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:115,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:116,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:117,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:118,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:119,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:120,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:121,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:122,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:123,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:124,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:125,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:126,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:127,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:128,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:129,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:130,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:131,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:132,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:133,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:134,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:135,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:136,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:137,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:138,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:139,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:140,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:141,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:142,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:143,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:144,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:145,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:146,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:147,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:148,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:149,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:150,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:151,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:152,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:153,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:154,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:155,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:156,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:157,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:158,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:159,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 89
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - state_type
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 166
    functionName: rawspeed::md5::MD5Hasher::compress
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 2
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - ROUND3
    - LOADSCHEDULE
    - ROTL32
    - block
    - ROUND2
    - ROUND_TAIL
    - ROUND1
    - ROUND0
    - invariant
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: "MD5Hasher::state_type MD5Hasher::compress(state_type state,\n                    Array1DRef<const
      uint8_t> block) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5::take
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:172,1
    - Dst: MD5::flush
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: rawspeed::md5::md5_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 7
    functionsReached:
    - MD5::take
    - MD5::flush
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: MD5Hasher::state_type md5_hash(const uint8_t* message, size_t len)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: data
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:181,1
    - Dst: snprintf
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: h
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - MD5Hasher::state_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: rawspeed::md5::hash_to_string
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 4
    functionsReached:
    - data
    - Array1DRef
    - size
    - static_cast<uint8_t>
    - h
    - implicit_cast<int>
    - snprintf
    - std::array::data
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string hash_to_string(const MD5Hasher::state_type& hash) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:46,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:46,1
    - Dst: block
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:52,1
    - Dst: LOADSCHEDULE
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:56,1
    - Dst: ROTL32
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:66,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:71,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:76,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:81,1
    - Dst: ROUND_TAIL
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:86,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:97,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:98,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:99,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:100,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:101,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:102,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:103,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:104,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:105,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:106,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:107,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:108,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:109,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:110,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:111,1
    - Dst: ROUND0
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:112,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:113,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:114,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:115,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:116,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:117,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:118,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:119,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:120,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:121,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:122,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:123,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:124,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:125,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:126,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:127,1
    - Dst: ROUND1
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:128,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:129,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:130,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:131,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:132,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:133,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:134,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:135,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:136,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:137,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:138,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:139,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:140,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:141,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:142,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:143,1
    - Dst: ROUND2
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:144,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:145,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:146,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:147,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:148,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:149,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:150,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:151,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:152,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:153,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:154,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:155,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:156,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:157,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:158,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:159,1
    - Dst: ROUND3
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 89
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - state_type
    - Array1DRef<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 166
    functionName: rawspeed::md5::MD5Hasher::compress
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 2
    functionsReached:
    - Array1DRef<const uint8_t>::size
    - ROUND3
    - LOADSCHEDULE
    - ROTL32
    - block
    - ROUND2
    - ROUND_TAIL
    - ROUND1
    - ROUND0
    - invariant
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: "MD5Hasher::state_type MD5Hasher::compress(state_type state,\n                    Array1DRef<const
      uint8_t> block) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5::take
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:172,1
    - Dst: MD5::flush
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: rawspeed::md5::md5_hash
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 7
    functionsReached:
    - MD5::take
    - MD5::flush
    linkageType: ''
    returnType: MD5Hasher::state_type
    signature: MD5Hasher::state_type md5_hash(const uint8_t* message, size_t len)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Array1DRef
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: data
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: size
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:180,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:181,1
    - Dst: snprintf
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: static_cast<uint8_t>
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: h
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:182,1
    - Dst: std::array::data
      Src: /src/librawspeed/src/utilities/rstest/md5.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - MD5Hasher::state_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: rawspeed::md5::hash_to_string
    functionSourceFile: /src/librawspeed/src/utilities/rstest/md5.cpp
    functionUses: 4
    functionsReached:
    - data
    - Array1DRef
    - size
    - static_cast<uint8_t>
    - h
    - implicit_cast<int>
    - snprintf
    - std::array::data
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string hash_to_string(const MD5Hasher::state_type& hash) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: RAWSPEED_READONLY::rawspeed_get_number_of_processor_cores
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READONLY rawspeed_get_number_of_processor_cores()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::clock
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: now
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 4
    functionsReached:
    - std::clock
    linkageType: ''
    returnType: time_point
    signature: time_point now() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: now
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:103,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:104,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: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - now
    linkageType: ''
    returnType: duration
    signature: duration operator()() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:123,1
    - Dst: FileReader
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:124,1
    - Dst: FullFileName::c_str
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: '& getFileContents()'
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - FullFileName::c_str
    - std::tie
    - FileReader
    linkageType: ''
    returnType: rawspeed::Buffer
    signature: rawspeed::Buffer & getFileContents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Entry*::getFileContents
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:143,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:144,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:147,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:149,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:150,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:153,1
    - Dst: rawspeed::implicit_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:155,1
    - Dst: RawImage::getUncroppedDim
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:155,1
    - Dst: TT
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:159,1
    - Dst: WT
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:160,1
    - Dst: counters::insert
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:163,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:165,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:167,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:171,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:174,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:178,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' state'
    - entry
    - threads
    argTypes:
    - benchmark::State
    - Entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 186
    functionName: BM_RawSpeed
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - RawImage::getUncroppedDim
    - WT
    - rawspeed::implicit_cast<unsigned>
    - auto::decodeMetaData
    - auto::checkSupport
    - RawParser::getDecoder
    - auto::decodeRaw
    - benchmark::Counter
    - benchmark::DoNotOptimize
    - TT
    - counters::insert
    - Entry*::getFileContents
    linkageType: ''
    returnType: void
    signature: void BM_RawSpeed(benchmark::State& state, Entry* entry, int threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:189,1
    - Dst: benchmark::RegisterBenchmark
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:191,1
    - Dst: auto*::Unit
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:192,1
    - Dst: auto*::UseRealTime
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:193,1
    - Dst: auto*::MeasureProcessCPUTime
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - entry
    - tName
    - threads
    argTypes:
    - Entry*
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: addBench
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - auto*::MeasureProcessCPUTime
    - auto*::UseRealTime
    - auto*::Unit
    - benchmark::RegisterBenchmark
    linkageType: ''
    returnType: void
    signature: void addBench(Entry* entry, std::string tName, int threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::clock
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: now
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 5
    functionsReached:
    - std::clock
    linkageType: ''
    returnType: time_point
    signature: time_point now() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: now
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:103,1
    - Dst: now
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:104,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: operator()() const
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - now
    linkageType: ''
    returnType: duration
    signature: duration operator()() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:123,1
    - Dst: FileReader
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:124,1
    - Dst: FullFileName::c_str
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: '& getFileContents()'
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - FullFileName::c_str
    - std::tie
    - FileReader
    linkageType: ''
    returnType: rawspeed::Buffer
    signature: rawspeed::Buffer & getFileContents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Entry*::getFileContents
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:143,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:144,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:147,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:149,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:150,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:153,1
    - Dst: rawspeed::implicit_cast<unsigned>
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:155,1
    - Dst: RawImage::getUncroppedDim
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:155,1
    - Dst: TT
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:159,1
    - Dst: WT
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:160,1
    - Dst: counters::insert
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:163,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:165,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:167,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:171,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:174,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:178,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' state'
    - entry
    - threads
    argTypes:
    - benchmark::State
    - Entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 186
    functionName: BM_RawSpeed
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - RawImage::getUncroppedDim
    - WT
    - rawspeed::implicit_cast<unsigned>
    - auto::decodeMetaData
    - auto::checkSupport
    - RawParser::getDecoder
    - auto::decodeRaw
    - benchmark::Counter
    - benchmark::DoNotOptimize
    - TT
    - counters::insert
    - Entry*::getFileContents
    linkageType: ''
    returnType: void
    signature: void BM_RawSpeed(benchmark::State& state, Entry* entry, int threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:189,1
    - Dst: benchmark::RegisterBenchmark
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:191,1
    - Dst: auto*::Unit
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:192,1
    - Dst: auto*::UseRealTime
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:193,1
    - Dst: auto*::MeasureProcessCPUTime
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - entry
    - tName
    - threads
    argTypes:
    - Entry*
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: addBench
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - auto*::MeasureProcessCPUTime
    - auto*::UseRealTime
    - auto*::Unit
    - benchmark::RegisterBenchmark
    linkageType: ''
    returnType: void
    signature: void addBench(Entry* entry, std::string tName, int threads)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::MaybeReenterWithoutASLR
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:200,1
    - Dst: benchmark::Initialize
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:201,1
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:203,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:207,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:208,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:208,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:211,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:216,1
    - Dst: omp_get_max_threads
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:219,1
    - Dst: hasFlag
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:227,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:229,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:230,1
    - Dst: rawspeed::ReadChecksumFile
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:232,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:233,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:233,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:237,1
    - Dst: std::move
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:237,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:244,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:245,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:249,1
    - Dst: std::vector::emplace_back
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:254,1
    - Dst: std::move
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:254,1
    - Dst: addBench
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:263,1
    - Dst: benchmark::RunSpecifiedBenchmarks
      Src: /src/librawspeed/src/utilities/rsbench/main.cpp:266,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - argc_
    - argv_
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 267
    functionName: main
    functionSourceFile: /src/librawspeed/src/utilities/rsbench/main.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::ReadChecksumFile
    - hasFlag
    - benchmark::RunSpecifiedBenchmarks
    - std::vector::emplace_back
    - std::move
    - addBench
    - benchmark::Initialize
    - std::vector::reserve
    - benchmark::MaybeReenterWithoutASLR
    - argv
    - omp_get_max_threads
    - rawspeed::Buffer::getAsArray1DRef
    - auto::size
    linkageType: ''
    returnType: int
    signature: int main(int argc_, char** argv_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:40,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:41,1
    - Dst: std::string::find_last_of
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:52,1
    - Dst: std::string::substr
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:53,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:60,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:61,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:63,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:64,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:69,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:76,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:82,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:85,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:86,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 98
    functionName: rawspeed::identify::find_cameras_xml
    functionSourceFile: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::string::substr
    - fprintf
    - stat
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string find_cameras_xml(const char* argv0)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:40,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:41,1
    - Dst: std::string::find_last_of
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:52,1
    - Dst: std::string::substr
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:53,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:60,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:61,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:63,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:64,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:69,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:76,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:82,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:85,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:86,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 98
    functionName: rawspeed::identify::find_cameras_xml
    functionSourceFile: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::string::substr
    - fprintf
    - stat
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string find_cameras_xml(const char* argv0)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:40,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:41,1
    - Dst: std::string::find_last_of
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:52,1
    - Dst: std::string::substr
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:53,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:60,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:61,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:63,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:64,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:69,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:76,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:82,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:85,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:86,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 98
    functionName: rawspeed::identify::find_cameras_xml
    functionSourceFile: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::string::substr
    - fprintf
    - stat
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string find_cameras_xml(const char* argv0)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:40,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:41,1
    - Dst: std::string::find_last_of
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:52,1
    - Dst: std::string::substr
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:53,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:58,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:60,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:61,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:63,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:64,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:67,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:68,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:69,1
    - Dst: std::string
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:76,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:79,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:82,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:85,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:86,1
    - Dst: stat
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:89,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:90,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 98
    functionName: rawspeed::identify::find_cameras_xml
    functionSourceFile: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::string::substr
    - fprintf
    - stat
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string find_cameras_xml(const char* argv0)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:116,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:118,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:119,1
    - Dst: find_cameras_xml
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:123,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:123,1
    - Dst: std::string::empty
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:124,1
    - Dst: std::make_unique<CameraMetaData>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:134,1
    - Dst: std::string::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:134,1
    - Dst: std::make_unique<CameraMetaData>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:136,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:140,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:144,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:144,1
    - Dst: argv
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:146,1
    - Dst: FileReader::readFile
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:148,1
    - Dst: RawParser::getDecoder
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:152,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:152,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:155,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:164,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:164,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:166,1
    - Dst: RawImage::metadata::make::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:166,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:167,1
    - Dst: RawImage::metadata::model::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:167,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:169,1
    - Dst: RawImage::metadata::canonical_make::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:169,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:170,1
    - Dst: RawImage::metadata::canonical_model::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:171,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:172,1
    - Dst: RawImage::metadata::canonical_alias::c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:173,1
    - Dst: auto::checkSupport
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:175,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:175,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:176,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:177,1
    - Dst: std::unique_ptr::get
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:177,1
    - Dst: RawImage::getErrors
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:180,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:181,1
    - Dst: c_str
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:181,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:183,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:185,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:187,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:189,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:190,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:192,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:194,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:196,1
    - Dst: RawImage::blackLevelSeparate::width
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:196,1
    - Dst: RawImage::blackLevelSeparate::height
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:197,1
    - Dst: RawImage::blackLevelSeparate::getAsArray1DRef
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:198,1
    - Dst: auto::size
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:199,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:201,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:204,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:206,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:208,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:211,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:211,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:213,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:215,1
    - Dst: RawImage::cfa::getDcrawFilter
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:216,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:217,1
    - Dst: RawImage::getBpp
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:218,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:219,1
    - Dst: RawImage::getCpp
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:220,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:221,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:222,1
    - Dst: static_cast<unsigned>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:222,1
    - Dst: RawImage::getDataType
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:222,1
    - Dst: RawImage::getUncroppedDim
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:225,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:226,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:230,1
    - Dst: RawImage::getCropOffset
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:233,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:234,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:236,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:237,1
    - Dst: getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:246,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:248,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:248,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:250,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:251,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:252,1
    - Dst: RawImage::getDataType
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:254,1
    - Dst: getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:263,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:265,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:265,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:268,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:269,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:270,1
    - Dst: RawImage::getDataType
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:271,1
    - Dst: getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:280,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:282,1
    - Dst: img
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:282,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:285,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:286,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:287,1
    - Dst: fprintf
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:290,1
    - Dst: what
      Src: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp:290,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 96
    argCount: 2
    argNames:
    - argc_
    - argv_
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 298
    functionName: main
    functionSourceFile: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
    functionUses: 0
    functionsReached:
    - RawImage::metadata::canonical_alias::c_str
    - RawImage::getBpp
    - img
    - fprintf
    - implicit_cast<double>
    - RawParser::getDecoder
    - auto::decodeRaw
    - RawImage::metadata::model::c_str
    - getByteDataAsUncroppedArray2DRef
    - auto::size
    - RawImage::getUncroppedDim
    - RawImage::blackLevelSeparate::getAsArray1DRef
    - getF32DataAsUncroppedArray2DRef
    - std::unique_ptr::get
    - std::string::c_str
    - auto::decodeMetaData
    - auto::checkSupport
    - static_cast<double>
    - getU16DataAsUncroppedArray2DRef
    - RawImage::metadata::make::c_str
    - argv
    - RawImage::blackLevelSeparate::width
    - RawImage::getCropOffset
    - std::make_unique<CameraMetaData>
    - c_str
    - RawImage::blackLevelSeparate::height
    - FileReader::readFile
    - std::string::empty
    - RawImage::metadata::canonical_model::c_str
    - RawImage::metadata::canonical_make::c_str
    - what
    - find_cameras_xml
    - RawImage::getDataType
    - RawImage::cfa::getDcrawFilter
    - RawImage::getCpp
    - RawImage::getErrors
    - static_cast<unsigned>
    - rawspeed::Buffer::getAsArray1DRef
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: __has_feature
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan(const MSan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan(MSan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& operator=(const MSan&)'
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MSan
    signature: MSan & operator=(const MSan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& operator=(MSan&&)'
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MSan
    signature: MSan & operator=(MSan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~MSan()
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MSan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msan_allocated_memory
      Src: /src/librawspeed/src/external/MemorySanitizer.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 8
    functionsReached:
    - __msan_allocated_memory
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(const void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MSan::Allocated([[maybe_unused]] const void* addr,\n                            [[maybe_unused]]
      size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' elt'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 9
    functionsReached:
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(const T& elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    - Dst: CroppedArray1DRef<std::byte>::begin
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    - Dst: CroppedArray1DRef<std::byte>::size
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - CroppedArray1DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 10
    functionsReached:
    - rawspeed::MSan::Allocated
    - CroppedArray1DRef<std::byte>::begin
    - CroppedArray1DRef<std::byte>::size
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(CroppedArray1DRef<std::byte> row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - CroppedArray2DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 11
    functionsReached:
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(CroppedArray2DRef<std::byte> frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msan_check_mem_is_initialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 4
    functionsReached:
    - __msan_check_mem_is_initialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(const void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MSan::CheckMemIsInitialized([[maybe_unused]] const void* addr,\n
      \                                       [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    - Dst: CroppedArray1DRef<std::byte>::begin
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    - Dst: CroppedArray1DRef<std::byte>::size
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - CroppedArray1DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 5
    functionsReached:
    - CroppedArray1DRef<std::byte>::size
    - CroppedArray1DRef<std::byte>::begin
    - rawspeed::MSan::CheckMemIsInitialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(CroppedArray1DRef<std::byte> row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - CroppedArray2DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 6
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(CroppedArray2DRef<std::byte> frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan(const MSan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: rawspeed::MSan
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MSan(MSan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& operator=(const MSan&)'
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MSan
    signature: MSan & operator=(const MSan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& operator=(MSan&&)'
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MSan
    signature: MSan & operator=(MSan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~MSan()
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MSan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msan_allocated_memory
      Src: /src/librawspeed/src/external/MemorySanitizer.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 11
    functionsReached:
    - __msan_allocated_memory
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(const void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MSan::Allocated([[maybe_unused]] const void* addr,\n                            [[maybe_unused]]
      size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' elt'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 12
    functionsReached:
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(const T& elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    - Dst: CroppedArray1DRef<std::byte>::begin
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    - Dst: CroppedArray1DRef<std::byte>::size
      Src: /src/librawspeed/src/external/MemorySanitizer.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - CroppedArray1DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 13
    functionsReached:
    - rawspeed::MSan::Allocated
    - CroppedArray1DRef<std::byte>::begin
    - CroppedArray1DRef<std::byte>::size
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(CroppedArray1DRef<std::byte> row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::Allocated
      Src: /src/librawspeed/src/external/MemorySanitizer.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - CroppedArray2DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: rawspeed::MSan::Allocated
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 14
    functionsReached:
    - rawspeed::MSan::Allocated
    linkageType: ''
    returnType: void
    signature: void MSan::Allocated(CroppedArray2DRef<std::byte> frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msan_check_mem_is_initialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 6
    functionsReached:
    - __msan_check_mem_is_initialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(const void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MSan::CheckMemIsInitialized([[maybe_unused]] const void* addr,\n
      \                                       [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    - Dst: CroppedArray1DRef<std::byte>::begin
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    - Dst: CroppedArray1DRef<std::byte>::size
      Src: /src/librawspeed/src/external/MemorySanitizer.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - row
    argTypes:
    - CroppedArray1DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 7
    functionsReached:
    - CroppedArray1DRef<std::byte>::size
    - CroppedArray1DRef<std::byte>::begin
    - rawspeed::MSan::CheckMemIsInitialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(CroppedArray1DRef<std::byte> row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/src/external/MemorySanitizer.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - CroppedArray2DRef<std::byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: rawspeed::MSan::CheckMemIsInitialized
    functionSourceFile: /src/librawspeed/src/external/MemorySanitizer.h
    functionUses: 8
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    linkageType: ''
    returnType: void
    signature: void MSan::CheckMemIsInitialized(CroppedArray2DRef<std::byte> frame)
  - 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: THREAD_ANNOTATION_ATTRIBUTE__
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_ANNOTATION_ATTRIBUTE__(x)
  - 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: CAPABILITY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPABILITY(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: GUARDED_BY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GUARDED_BY(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: PT_GUARDED_BY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PT_GUARDED_BY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: ACQUIRED_BEFORE
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRED_BEFORE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: ACQUIRED_AFTER
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRED_AFTER(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: REQUIRES
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: REQUIRES_SHARED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRES_SHARED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ACQUIRE
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ACQUIRE_SHARED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRE_SHARED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: RELEASE
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: RELEASE_SHARED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_SHARED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TRY_ACQUIRE
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_ACQUIRE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TRY_ACQUIRE_SHARED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_ACQUIRE_SHARED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: EXCLUDES
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCLUDES(...)
  - 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: ASSERT_CAPABILITY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_CAPABILITY(x)
  - 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: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ASSERT_SHARED_CAPABILITY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_SHARED_CAPABILITY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: RETURN_CAPABILITY
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_CAPABILITY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: EXCLUSIVE_LOCKS_REQUIRED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCLUSIVE_LOCKS_REQUIRED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: SHARED_LOCKS_REQUIRED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_LOCKS_REQUIRED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: EXCLUSIVE_LOCK_FUNCTION
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCLUSIVE_LOCK_FUNCTION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: SHARED_LOCK_FUNCTION
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_LOCK_FUNCTION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: UNLOCK_FUNCTION
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_FUNCTION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: EXCLUSIVE_TRYLOCK_FUNCTION
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCLUSIVE_TRYLOCK_FUNCTION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: SHARED_TRYLOCK_FUNCTION
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_TRYLOCK_FUNCTION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: ASSERT_EXCLUSIVE_LOCK
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_EXCLUSIVE_LOCK(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: ASSERT_SHARED_LOCK
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_SHARED_LOCK(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: LOCKS_EXCLUDED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKS_EXCLUDED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: LOCK_RETURNED
    functionSourceFile: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_RETURNED(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: __has_feature
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan(const ASan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan(ASan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& operator=(const ASan&)'
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASan
    signature: ASan & operator=(const ASan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& operator=(ASan&&)'
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASan
    signature: ASan & operator=(ASan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~ASan()
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ASan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __asan_poison_memory_region
      Src: /src/librawspeed/src/external/AddressSanitizer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: rawspeed::ASan::PoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached:
    - __asan_poison_memory_region
    linkageType: ''
    returnType: void
    signature: void ASan::PoisonMemoryRegion(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __asan_unpoison_memory_region
      Src: /src/librawspeed/src/external/AddressSanitizer.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::ASan::UnPoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached:
    - __asan_unpoison_memory_region
    linkageType: ''
    returnType: void
    signature: void ASan::UnPoisonMemoryRegion(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<void*>
      Src: /src/librawspeed/src/external/AddressSanitizer.h:67,1
    - Dst: __asan_region_is_poisoned
      Src: /src/librawspeed/src/external/AddressSanitizer.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: rawspeed::ASan::RegionIsPoisoned
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 4
    functionsReached:
    - const_cast<void*>
    - __asan_region_is_poisoned
    linkageType: ''
    returnType: bool
    signature: bool ASan::RegionIsPoisoned(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: rawspeed::ASan::PoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ASan::PoisonMemoryRegion([[maybe_unused]] const volatile void*
      addr,\n                                     [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: rawspeed::ASan::UnPoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ASan::UnPoisonMemoryRegion([[maybe_unused]] const volatile void*
      addr,\n                           [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed::ASan::RegionIsPoisoned
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ASan::RegionIsPoisoned([[maybe_unused]] const volatile void*
      addr,\n                                   [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan(const ASan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rawspeed::ASan
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASan(ASan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& operator=(const ASan&)'
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASan
    signature: ASan & operator=(const ASan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& operator=(ASan&&)'
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASan
    signature: ASan & operator=(ASan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~ASan()
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ASan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __asan_poison_memory_region
      Src: /src/librawspeed/src/external/AddressSanitizer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: rawspeed::ASan::PoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached:
    - __asan_poison_memory_region
    linkageType: ''
    returnType: void
    signature: void ASan::PoisonMemoryRegion(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __asan_unpoison_memory_region
      Src: /src/librawspeed/src/external/AddressSanitizer.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rawspeed::ASan::UnPoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached:
    - __asan_unpoison_memory_region
    linkageType: ''
    returnType: void
    signature: void ASan::UnPoisonMemoryRegion(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<void*>
      Src: /src/librawspeed/src/external/AddressSanitizer.h:67,1
    - Dst: __asan_region_is_poisoned
      Src: /src/librawspeed/src/external/AddressSanitizer.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: rawspeed::ASan::RegionIsPoisoned
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 4
    functionsReached:
    - const_cast<void*>
    - __asan_region_is_poisoned
    linkageType: ''
    returnType: bool
    signature: bool ASan::RegionIsPoisoned(const volatile void* addr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: rawspeed::ASan::PoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ASan::PoisonMemoryRegion([[maybe_unused]] const volatile void*
      addr,\n                                     [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: rawspeed::ASan::UnPoisonMemoryRegion
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ASan::UnPoisonMemoryRegion([[maybe_unused]] const volatile void*
      addr,\n                           [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: rawspeed::ASan::RegionIsPoisoned
    functionSourceFile: /src/librawspeed/src/external/AddressSanitizer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ASan::RegionIsPoisoned([[maybe_unused]] const volatile void*
      addr,\n                                   [[maybe_unused]] size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/librawspeed/lnt/RawSpeed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: usage
    functionSourceFile: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:59,1
    - Dst: std::tie
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:62,1
    - Dst: rawspeed::FileReader::readFile
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:62,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    - Dst: rawspeed::Buffer::begin
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: process
    functionSourceFile: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
    functionUses: 10
    functionsReached:
    - rawspeed::Buffer::begin
    - std::tie
    - rawspeed::Buffer::getSize
    - rawspeed::Buffer::Buffer
    - LLVMFuzzerTestOneInput
    - rawspeed::FileReader::readFile
    linkageType: ''
    returnType: void
    signature: void process(const char* filename) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: usage
    functionSourceFile: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::Buffer
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:59,1
    - Dst: std::tie
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:62,1
    - Dst: rawspeed::FileReader::readFile
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:62,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    - Dst: rawspeed::Buffer::begin
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    - Dst: rawspeed::Buffer::getSize
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: process
    functionSourceFile: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
    functionUses: 10
    functionsReached:
    - rawspeed::Buffer::begin
    - std::tie
    - rawspeed::Buffer::getSize
    - rawspeed::Buffer::Buffer
    - LLVMFuzzerTestOneInput
    - rawspeed::FileReader::readFile
    linkageType: ''
    returnType: void
    signature: void process(const char* filename) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Buffer::getAsArray1DRef
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:75,1
    - Dst: auto::size
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:77,1
    - Dst: auto::size
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:78,1
    - Dst: std::string
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:78,1
    - Dst: argv
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:78,1
    - Dst: usage
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:79,1
    - Dst: auto::size
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:82,1
    - Dst: omp_get_num_threads
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:83,1
    - Dst: std::max
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:84,1
    - Dst: auto::size
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:88,1
    - Dst: process
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:89,1
    - Dst: argv
      Src: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - argc_
    - argv_
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
    functionUses: 0
    functionsReached:
    - std::max
    - process
    - omp_get_num_threads
    - argv
    - usage
    - std::string
    - rawspeed::Buffer::getAsArray1DRef
    - auto::size
    linkageType: ''
    returnType: int
    signature: int main(int argc_, char** argv_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RawParser::getDecoder
      Src: /src/librawspeed/fuzz/rawspeed/main.cpp:39,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/fuzz/rawspeed/main.cpp:46,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/fuzz/rawspeed/main.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/rawspeed/main.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::RawParser::getDecoder
    - auto::decodeRaw
    - auto::decodeMetaData
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp:61,1
    - Dst: rawspeed::PARSER::getDecoder
      Src: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp:73,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp:82,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp
    constantsTouched: []
    func_position:
      end: 100
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 100
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::PARSER::getDecoder
    - assert
    - auto::decodeRaw
    - auto::decodeMetaData
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:40,1
    - Dst: rawspeed::RawImage::getUncroppedDim
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:51,1
    - Dst: rawspeed::RawImage::getUncroppedDim
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:52,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:53,1
    - Dst: CreateCFA
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:56,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:58,1
    - Dst: rawspeed::RawImage::getDataType
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:59,1
    - Dst: rawspeed::RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:62,1
    - Dst: rawspeed::ByteStream::getU16
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:63,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:64,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:65,1
    - Dst: img
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:66,1
    - Dst: rawspeed::RawImage::getF32DataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:72,1
    - Dst: rawspeed::ByteStream::getFloat
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:73,1
    - Dst: rawspeed::Array2DRef::height
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:74,1
    - Dst: rawspeed::Array2DRef::width
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:75,1
    - Dst: img
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:76,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:83,1
    - Dst: rawspeed::RawImage::getUncroppedDim
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:84,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:86,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:87,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:88,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:89,1
    - Dst: rawspeed::RawImage::subFrame
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:92,1
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:95,1
    - Dst: rawspeed::DngOpcodes::applyOpCodes
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:96,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:97,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:98,1
    - Dst: rawspeed::RawImage::transferBadPixelsToMap
      Src: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp
    constantsTouched: []
    func_position:
      end: 106
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 106
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp
    functionUses: 2
    functionsReached:
    - img
    - ThrowIOE
    - rawspeed::DngOpcodes::applyOpCodes
    - rawspeed::ByteStream::getSubStream
    - rawspeed::Array2DRef::height
    - rawspeed::ByteStream::getU16
    - rawspeed::RawImage::getDataType
    - rawspeed::ByteStream::getByte
    - rawspeed::RawImage::transferBadPixelsToMap
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::getUncroppedDim
    - rawspeed::RawImage::createData
    - CreateCFA
    - rawspeed::ByteStream::getI32
    - rawspeed::RawImage::subFrame
    - rawspeed::Array2DRef::width
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::RawImage::getF32DataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getFloat
    - rawspeed::RawImage::getU16DataAsUncroppedArray2DRef
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: '& operator=(const InputWrapper&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(InputWrapper&&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitLengths_
    - bitVals_
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void InputWrapper(ByteStream bitLengths_, ByteStream bitVals_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: rawspeed::InputWrapper::RAWSPEED_READNONE
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - getSize
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: peekByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: rawspeed::extractLowBitsSafe
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    - Dst: peekU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: operator[](int i) const
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - size
    - peekByte
    - peekU32
    - rawspeed::extractLowBitsSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: std::pair<uint32_t, int>
    signature: std::pair<uint32_t, int> operator[](int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:139,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:141,1
    - Dst: auto::put
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:143,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:149,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: rawspeed::produceBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - size
    - PartitioningOutputIterator
    - std::vector::size
    - auto::put
    - std::back_inserter
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> produceBitstream(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:158,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:159,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:161,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' w'
    argTypes:
    - Array1DRef<const uint8_t>
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::reparseBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - auto::fill
    - size
    - BitStreamer
    - auto::getBitsNoFill
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void reparseBitstream(Array1DRef<const uint8_t> input, const InputWrapper&
      w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::produceBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:168,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::reparseBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: rawspeed::checkFlavourImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - rawspeed::produceBitstream
    - std::vector::size
    - rawspeed::reparseBitstream
    linkageType: ''
    returnType: void
    signature: void checkFlavourImpl(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::checkFlavourImpl
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:176,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts:
    - condition: (false && "Unexpected exception in `checkFlavourImpl()`.")
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::checkFlavourImpl
    - assert
    linkageType: ''
    returnType: void
    signature: void checkFlavour(const InputWrapper& w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:183,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:192,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:193,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:194,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:200,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:203,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:206,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:209,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:212,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:215,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 222
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 222
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - __builtin_unreachable
    - ByteStream::getByte
    - assert
    - rawspeed::checkFlavour
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: '& operator=(const InputWrapper&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(InputWrapper&&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitLengths_
    - bitVals_
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void InputWrapper(ByteStream bitLengths_, ByteStream bitVals_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: rawspeed::InputWrapper::RAWSPEED_READNONE
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - getSize
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:121,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: peekByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: rawspeed::extractLowBitsSafe
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    - Dst: peekU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: operator[](int i) const
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - size
    - peekByte
    - peekU32
    - rawspeed::extractLowBitsSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: std::pair<uint32_t, int>
    signature: std::pair<uint32_t, int> operator[](int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:139,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:141,1
    - Dst: auto::put
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:143,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:149,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: rawspeed::produceBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 1
    functionsReached:
    - size
    - PartitioningOutputIterator
    - std::vector::size
    - auto::put
    - std::back_inserter
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> produceBitstream(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:158,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:159,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:161,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' w'
    argTypes:
    - Array1DRef<const uint8_t>
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::reparseBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 1
    functionsReached:
    - auto::fill
    - size
    - BitStreamer
    - auto::getBitsNoFill
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void reparseBitstream(Array1DRef<const uint8_t> input, const InputWrapper&
      w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::produceBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:168,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::reparseBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: rawspeed::checkFlavourImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - rawspeed::produceBitstream
    - std::vector::size
    - rawspeed::reparseBitstream
    linkageType: ''
    returnType: void
    signature: void checkFlavourImpl(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::checkFlavourImpl
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:176,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts:
    - condition: (false && "Unexpected exception in `checkFlavourImpl()`.")
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::checkFlavourImpl
    - assert
    linkageType: ''
    returnType: void
    signature: void checkFlavour(const InputWrapper& w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:183,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:192,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:193,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:194,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:200,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:203,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:206,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:209,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:212,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:215,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 222
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 222
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - __builtin_unreachable
    - ByteStream::getByte
    - assert
    - rawspeed::checkFlavour
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: '& operator=(const InputWrapper&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(InputWrapper&&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitLengths_
    - bitVals_
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void InputWrapper(ByteStream bitLengths_, ByteStream bitVals_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: rawspeed::InputWrapper::RAWSPEED_READNONE
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - getSize
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:121,1
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: peekByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: extractLowBitsSafe
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    - Dst: peekU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: operator[](int i) const
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - extractLowBitsSafe
    - size
    - implicit_cast<int>
    - peekByte
    - peekU32
    - invariant
    linkageType: ''
    returnType: std::pair<uint32_t, int>
    signature: std::pair<uint32_t, int> operator[](int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:139,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:141,1
    - Dst: auto::put
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:143,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:149,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: rawspeed::produceBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 2
    functionsReached:
    - size
    - PartitioningOutputIterator
    - std::vector::size
    - auto::put
    - std::back_inserter
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> produceBitstream(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:158,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:159,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:161,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' w'
    argTypes:
    - Array1DRef<const uint8_t>
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::reparseBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 2
    functionsReached:
    - auto::fill
    - size
    - BitStreamer
    - auto::getBitsNoFill
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void reparseBitstream(Array1DRef<const uint8_t> input, const InputWrapper&
      w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::produceBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:168,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::reparseBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: rawspeed::checkFlavourImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 2
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - rawspeed::produceBitstream
    - std::vector::size
    - rawspeed::reparseBitstream
    linkageType: ''
    returnType: void
    signature: void checkFlavourImpl(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::checkFlavourImpl
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:176,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts:
    - condition: (false && "Unexpected exception in `checkFlavourImpl()`.")
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::checkFlavourImpl
    - assert
    linkageType: ''
    returnType: void
    signature: void checkFlavour(const InputWrapper& w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:183,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:192,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:193,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:194,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:200,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:203,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:206,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:209,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:212,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:215,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 222
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 222
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - __builtin_unreachable
    - ByteStream::getByte
    - assert
    - rawspeed::checkFlavour
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InputWrapper(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: '& operator=(const InputWrapper&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(const InputWrapper&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(InputWrapper&&)'
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InputWrapper
    signature: InputWrapper & operator=(InputWrapper&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitLengths_
    - bitVals_
    argTypes:
    - ByteStream
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: rawspeed::InputWrapper::InputWrapper
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - size
    linkageType: ''
    returnType: void
    signature: void InputWrapper(ByteStream bitLengths_, ByteStream bitVals_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:115,1
    - Dst: getSize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: rawspeed::InputWrapper::RAWSPEED_READNONE
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - invariant
    - getSize
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:121,1
    - Dst: invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:122,1
    - Dst: implicit_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: peekByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:124,1
    - Dst: extractLowBitsSafe
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    - Dst: peekU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: operator[](int i) const
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - extractLowBitsSafe
    - size
    - implicit_cast<int>
    - peekByte
    - peekU32
    - invariant
    linkageType: ''
    returnType: std::pair<uint32_t, int>
    signature: std::pair<uint32_t, int> operator[](int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:136,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:139,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:141,1
    - Dst: auto::put
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:143,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:149,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: rawspeed::produceBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 3
    functionsReached:
    - size
    - PartitioningOutputIterator
    - std::vector::size
    - auto::put
    - std::back_inserter
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> produceBitstream(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:158,1
    - Dst: size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:159,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:161,1
    - Dst: auto::getBitsNoFill
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:162,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' w'
    argTypes:
    - Array1DRef<const uint8_t>
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: rawspeed::reparseBitstream
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 3
    functionsReached:
    - auto::fill
    - size
    - BitStreamer
    - auto::getBitsNoFill
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void reparseBitstream(Array1DRef<const uint8_t> input, const InputWrapper&
      w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::produceBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:168,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:170,1
    - Dst: rawspeed::reparseBitstream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: rawspeed::checkFlavourImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 3
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast
    - Array1DRef
    - rawspeed::produceBitstream
    - std::vector::size
    - rawspeed::reparseBitstream
    linkageType: ''
    returnType: void
    signature: void checkFlavourImpl(const InputWrapper& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::checkFlavourImpl
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:176,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - InputWrapper
    assertStmts:
    - condition: (false && "Unexpected exception in `checkFlavourImpl()`.")
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::checkFlavourImpl
    - assert
    linkageType: ''
    returnType: void
    signature: void checkFlavour(const InputWrapper& w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:183,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:190,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:192,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:193,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:194,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:200,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:203,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:206,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:209,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:212,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:215,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    constantsTouched: []
    func_position:
      end: 222
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 222
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getStream
    - __builtin_unreachable
    - ByteStream::getByte
    - assert
    - rawspeed::checkFlavour
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: RAWSPEED_READNONE::rawspeed_get_number_of_processor_cores
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAWSPEED_READNONE rawspeed_get_number_of_processor_cores()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:32,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:33,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:34,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:35,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:36,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:39,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:40,1
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:46,1
    - Dst: static_cast<rawspeed::iPoint2D::value_type>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:46,1
    - Dst: static_cast<rawspeed::iPoint2D::value_type>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:47,1
    - Dst: rawspeed::RawImage::setCpp
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: CreateRawImage
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::setCpp
    - rawspeed::iPoint2D::iPoint2D
    - static_cast<rawspeed::iPoint2D::value_type>
    - ThrowRSE
    - getU32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: rawspeed::RawImage
    signature: rawspeed::RawImage CreateRawImage(rawspeed::ByteStream& bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getI32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:55,1
    - Dst: getI32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:56,1
    - Dst: rawspeed::iPoint2D::hasPositiveArea
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:59,1
    - Dst: ThrowIOE
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:60,1
    - Dst: rawspeed::ColorFilterArray::ColorFilterArray
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:62,1
    - Dst: rawspeed::ColorFilterArray::setSize
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:63,1
    - Dst: check
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:64,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:65,1
    - Dst: rawspeed::iPoint2D::area
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:65,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:69,1
    - Dst: static_cast<uint32_t>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:70,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:71,1
    - Dst: rawspeed::ColorFilterArray::setColorAt
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:73,1
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:73,1
    - Dst: static_cast<rawspeed::CFAColor>
      Src: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: CreateCFA
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::iPoint2D::area
    - rawspeed::iPoint2D::iPoint2D
    - ThrowIOE
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - getI32
    - check
    - rawspeed::ColorFilterArray::setColorAt
    - ThrowRSE
    - rawspeed::ColorFilterArray::ColorFilterArray
    - rawspeed::iPoint2D::hasPositiveArea
    - static_cast<rawspeed::CFAColor>
    - rawspeed::ColorFilterArray::setSize
    - getU32
    - static_cast<uint32_t>
    linkageType: ''
    returnType: rawspeed::ColorFilterArray
    signature: rawspeed::ColorFilterArray CreateCFA(rawspeed::ByteStream& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrefixCodeVectorEncoder::setup
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: handleDNGBug16
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:90,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:95,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:97,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:102,1
    - Dst: PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:108,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:110,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:117,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:118,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:121,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:122,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:125,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:126,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:127,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - inputSrc
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts:
    - condition: (vSrc == vRec)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: rawspeed::workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Array1DRef<const uint8_t>::size
    - rawspeed::implicit_cast
    - auto::fill
    - Array1DRef
    - BitStreamer
    - PartitioningOutputIterator
    - std::vector::size
    - template decode<BitStreamer, IsFullDecode>
    - __builtin_unreachable
    - auto::getInputPosition
    - PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
    - assert
    - std::back_inserter
    - handleDNGBug16
    - PrefixCodeVectorEncoder::setup
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void workloop(Array1DRef<const uint8_t> inputSrc, const HT& ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:138,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:139,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: rawspeed::checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(Array1DRef<const uint8_t> input, const HT& ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:145,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:148,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:149,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:152,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:155,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:158,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: rawspeed::checkDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getByte
    - createPrefixCodeDecoder
    - ByteStream::peekRemainingBuffer
    - ThrowRSE
    - rawspeed::checkPump
    linkageType: ''
    returnType: void
    signature: void checkDecoder(ByteStream bs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:167,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:170,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:173,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:176,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:180,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:183,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:187,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:191,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:195,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 202
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 4
    functionsReached:
    - rawspeed::checkDecoder
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: void
    signature: void checkFlavour(ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:205,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:213,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:215,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:218,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::checkFlavour
    - assert
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrefixCodeVectorEncoder::setup
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: handleDNGBug16
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:90,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:95,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:97,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:102,1
    - Dst: PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:108,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:110,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:117,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:118,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:121,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:122,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:125,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:126,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:127,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - inputSrc
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts:
    - condition: (vSrc == vRec)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: rawspeed::workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Array1DRef<const uint8_t>::size
    - rawspeed::implicit_cast
    - auto::fill
    - Array1DRef
    - BitStreamer
    - PartitioningOutputIterator
    - std::vector::size
    - template decode<BitStreamer, IsFullDecode>
    - __builtin_unreachable
    - auto::getInputPosition
    - PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
    - assert
    - std::back_inserter
    - handleDNGBug16
    - PrefixCodeVectorEncoder::setup
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void workloop(Array1DRef<const uint8_t> inputSrc, const HT& ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:138,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:139,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: rawspeed::checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 1
    functionsReached:
    - rawspeed::workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(Array1DRef<const uint8_t> input, const HT& ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:145,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:148,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:149,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:152,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:155,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:158,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: rawspeed::checkDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getByte
    - createPrefixCodeDecoder
    - ByteStream::peekRemainingBuffer
    - ThrowRSE
    - rawspeed::checkPump
    linkageType: ''
    returnType: void
    signature: void checkDecoder(ByteStream bs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:167,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:170,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:173,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:176,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:180,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:183,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:187,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:191,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:195,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 202
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 5
    functionsReached:
    - rawspeed::checkDecoder
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: void
    signature: void checkFlavour(ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:205,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:213,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:215,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:218,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::checkFlavour
    - assert
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrefixCodeVectorEncoder::setup
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: handleDNGBug16
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:90,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:95,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:97,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:102,1
    - Dst: PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:108,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:110,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:117,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:118,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:121,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:122,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:125,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:126,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:127,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - inputSrc
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts:
    - condition: (vSrc == vRec)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: rawspeed::workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 2
    functionsReached:
    - std::vector::data
    - Array1DRef<const uint8_t>::size
    - rawspeed::implicit_cast
    - auto::fill
    - Array1DRef
    - BitStreamer
    - PartitioningOutputIterator
    - std::vector::size
    - template decode<BitStreamer, IsFullDecode>
    - __builtin_unreachable
    - auto::getInputPosition
    - PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
    - assert
    - std::back_inserter
    - handleDNGBug16
    - PrefixCodeVectorEncoder::setup
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void workloop(Array1DRef<const uint8_t> inputSrc, const HT& ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:138,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:139,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: rawspeed::checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(Array1DRef<const uint8_t> input, const HT& ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:145,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:148,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:149,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:152,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:155,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:158,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: rawspeed::checkDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 2
    functionsReached:
    - ByteStream::getByte
    - createPrefixCodeDecoder
    - ByteStream::peekRemainingBuffer
    - ThrowRSE
    - rawspeed::checkPump
    linkageType: ''
    returnType: void
    signature: void checkDecoder(ByteStream bs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:167,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:170,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:173,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:176,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:180,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:183,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:187,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:191,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:195,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 202
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 6
    functionsReached:
    - rawspeed::checkDecoder
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: void
    signature: void checkFlavour(ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:205,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:213,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:215,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:218,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::checkFlavour
    - assert
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrefixCodeVectorEncoder::setup
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: handleDNGBug16
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:82,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:90,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:92,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:95,1
    - Dst: auto::fill
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:97,1
    - Dst: auto::getInputPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: Array1DRef<const uint8_t>::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:98,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:102,1
    - Dst: PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:108,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:110,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:117,1
    - Dst: std::vector::resize
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:118,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:121,1
    - Dst: BitStreamer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:122,1
    - Dst: Array1DRef
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::data
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:123,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:125,1
    - Dst: template decode<BitStreamer, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:126,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:127,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - inputSrc
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts:
    - condition: (vSrc == vRec)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: rawspeed::workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 3
    functionsReached:
    - std::vector::data
    - Array1DRef<const uint8_t>::size
    - rawspeed::implicit_cast
    - auto::fill
    - Array1DRef
    - BitStreamer
    - PartitioningOutputIterator
    - std::vector::size
    - template decode<BitStreamer, IsFullDecode>
    - __builtin_unreachable
    - auto::getInputPosition
    - PrefixCodeVectorEncoder::template encode<BitVacuumer, IsFullDecode>
    - assert
    - std::back_inserter
    - handleDNGBug16
    - PrefixCodeVectorEncoder::setup
    - std::vector::resize
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void workloop(Array1DRef<const uint8_t> inputSrc, const HT& ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:138,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:139,1
    - Dst: rawspeed::workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: rawspeed::checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 3
    functionsReached:
    - rawspeed::workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(Array1DRef<const uint8_t> input, const HT& ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:145,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:148,1
    - Dst: ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:149,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:152,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:155,1
    - Dst: rawspeed::checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:158,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: rawspeed::checkDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 3
    functionsReached:
    - ByteStream::getByte
    - createPrefixCodeDecoder
    - ByteStream::peekRemainingBuffer
    - ThrowRSE
    - rawspeed::checkPump
    linkageType: ''
    returnType: void
    signature: void checkDecoder(ByteStream bs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:167,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:170,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:173,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:176,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:180,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:183,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:187,1
    - Dst: rawspeed::checkDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:191,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:195,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 202
    functionName: rawspeed::checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 7
    functionsReached:
    - rawspeed::checkDecoder
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: void
    signature: void checkFlavour(ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:205,1
    - Dst: ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:213,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:215,1
    - Dst: rawspeed::checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:218,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::checkFlavour
    - assert
    - ThrowRSE
    - ByteStream::getByte
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:42,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:43,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:43,1
    - Dst: get
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:44,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:46,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:49,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' bs'
    - numEntries
    argTypes:
    - rawspeed::ByteStream
    - unsigned
    assertStmts:
    - condition: (values.size() == numEntries)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: getCodeValues
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - std::vector::size
    - assert
    - get
    - std::back_inserter
    - ThrowRSE
    - std::generate_n
    linkageType: ''
    returnType: auto
    signature: auto getCodeValues(rawspeed::ByteStream& bs, unsigned numEntries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:59,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:60,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:61,1
    - Dst: get
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:62,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:64,1
    - Dst: get
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:65,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:67,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:70,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' bs'
    - numSymbols
    argTypes:
    - rawspeed::ByteStream
    - unsigned
    assertStmts:
    - condition: (symbols.size() == numSymbols)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: getCodeSymbols
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - std::vector::size
    - assert
    - get
    - std::back_inserter
    - ThrowRSE
    - std::generate_n
    linkageType: ''
    returnType: auto
    signature: auto getCodeSymbols(rawspeed::ByteStream& bs, unsigned numSymbols)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::HuffmanCode::HuffmanCode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:79,1
    - Dst: rawspeed::HuffmanCode::setNCodesPerLength
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:83,1
    - Dst: getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:83,1
    - Dst: getStream
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:88,1
    - Dst: getCodeValues
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:89,1
    - Dst: rawspeed::HuffmanCode::setCodeValues
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:90,1
    - Dst: rawspeed::Array1DRef<const typename Traits::CodeValueTy>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:90,1
    - Dst: auto::data
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:91,1
    - Dst: rawspeed::implicit_cast<rawspeed::Buffer::size_type>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:92,1
    - Dst: auto::size
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: createHuffmanCode
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<const typename Traits::CodeValueTy>
    - rawspeed::HuffmanCode::setCodeValues
    - rawspeed::implicit_cast<rawspeed::Buffer::size_type>
    - auto::data
    - rawspeed::HuffmanCode::setNCodesPerLength
    - getBuffer
    - rawspeed::HuffmanCode::HuffmanCode
    - auto::size
    - getCodeValues
    - getStream
    linkageType: ''
    returnType: rawspeed::HuffmanCode<CodeTag>
    signature: rawspeed::HuffmanCode<CodeTag> createHuffmanCode(rawspeed::ByteStream&
      bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:103,1
    - Dst: getU32
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:104,1
    - Dst: getStream
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:107,1
    - Dst: getStream
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:108,1
    - Dst: getCodeValues
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:111,1
    - Dst: getCodeSymbols
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: createPrefixCode
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - getCodeSymbols
    - getCodeValues
    - getU32
    - getStream
    linkageType: ''
    returnType: rawspeed::PrefixCode<CodeTag>
    signature: rawspeed::PrefixCode<CodeTag> createPrefixCode(rawspeed::ByteStream&
      bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createHuffmanCode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:120,1
    - Dst: T
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:121,1
    - Dst: std::move
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: createHuffmanPrefixCodeDecoderImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - T
    - createHuffmanCode
    - std::move
    linkageType: ''
    returnType: T
    signature: T createHuffmanPrefixCodeDecoderImpl(rawspeed::ByteStream& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createHuffmanCode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:127,1
    - Dst: auto::rawspeed::PrefixCode<CodeTag>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:128,1
    - Dst: T
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:129,1
    - Dst: std::move
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: createHuffmanPrefixCodeDecoderImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - T
    - auto::rawspeed::PrefixCode<CodeTag>
    - createHuffmanCode
    - std::move
    linkageType: ''
    returnType: T
    signature: T createHuffmanPrefixCodeDecoderImpl(rawspeed::ByteStream& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: createSimplePrefixCodeDecoderImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - ThrowRSE
    linkageType: ''
    returnType: T
    signature: T createSimplePrefixCodeDecoderImpl(rawspeed::ByteStream& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:142,1
    - Dst: T
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:143,1
    - Dst: std::move
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: createSimplePrefixCodeDecoderImpl
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 0
    functionsReached:
    - T
    - createPrefixCode
    - std::move
    linkageType: ''
    returnType: T
    signature: T createSimplePrefixCodeDecoderImpl(rawspeed::ByteStream& bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::Optional::Optional
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:150,1
    - Dst: getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:151,1
    - Dst: createHuffmanPrefixCodeDecoderImpl
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:152,1
    - Dst: createSimplePrefixCodeDecoderImpl
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:154,1
    - Dst: getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:157,1
    - Dst: getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:161,1
    - Dst: rawspeed::Optional::setup
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:163,1
    - Dst: std::move
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 166
    functionName: createPrefixCodeDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
    functionUses: 10
    functionsReached:
    - createHuffmanPrefixCodeDecoderImpl
    - rawspeed::Optional::Optional
    - std::move
    - rawspeed::Optional::setup
    - createSimplePrefixCodeDecoderImpl
    - getByte
    linkageType: ''
    returnType: T
    signature: T createPrefixCodeDecoder(rawspeed::ByteStream& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: template decode<decltype(bits1), IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:68,1
    - Dst: template decode<decltype(bits0), IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:77,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:86,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:90,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - input
    - ' ht0'
    - ' ht1'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT0
    - HT1
    assertStmts:
    - condition: (failure0 == failure1)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (decoded0 == decoded1)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 98
    functionName: workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 4
    functionsReached:
    - assert
    - template decode<decltype(bits0), IsFullDecode>
    - ThrowRSE
    - template decode<decltype(bits1), IsFullDecode>
    linkageType: ''
    returnType: void
    signature: "void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT0&
      ht0,\n              const HT1& ht1)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:104,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:105,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - input
    - ' ht0'
    - ' ht1'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT0
    - HT1
    assertStmts:
    - condition: (ht0.isFullDecode() == ht1.isFullDecode())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 4
    functionsReached:
    - workloop
    - assert
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: "void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT0&
      ht0,\n               const HT1& ht1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:115,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:117,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:122,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:124,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:129,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:130,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: rawspeed::ByteStream::getPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: rawspeed::ByteStream::getPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:136,1
    - Dst: rawspeed::ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:141,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:144,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:147,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:150,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - bs
    argTypes:
    - rawspeed::ByteStream
    assertStmts:
    - condition: (bs0.getPosition() == bs1.getPosition())
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (format0 == format1)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (format0 == format1)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 155
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 155
    functionName: checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 8
    functionsReached:
    - checkPump
    - createPrefixCodeDecoder
    - assert
    - rawspeed::ByteStream::peekRemainingBuffer
    - rawspeed::ByteStream::getPosition
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void checkFlavour(rawspeed::ByteStream bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: template decode<decltype(bits1), IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:68,1
    - Dst: template decode<decltype(bits0), IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:77,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:86,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:90,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - input
    - ' ht0'
    - ' ht1'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT0
    - HT1
    assertStmts:
    - condition: (failure0 == failure1)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (decoded0 == decoded1)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 98
    functionName: workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 5
    functionsReached:
    - assert
    - template decode<decltype(bits0), IsFullDecode>
    - ThrowRSE
    - template decode<decltype(bits1), IsFullDecode>
    linkageType: ''
    returnType: void
    signature: "void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT0&
      ht0,\n              const HT1& ht1)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:103,1
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:104,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:105,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - input
    - ' ht0'
    - ' ht1'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT0
    - HT1
    assertStmts:
    - condition: (ht0.isFullDecode() == ht1.isFullDecode())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 5
    functionsReached:
    - workloop
    - assert
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: "void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT0&
      ht0,\n               const HT1& ht1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:115,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:117,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:122,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:124,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:129,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:130,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: rawspeed::ByteStream::getPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: rawspeed::ByteStream::getPosition
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:134,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:136,1
    - Dst: rawspeed::ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:141,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:144,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:147,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:150,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - bs
    argTypes:
    - rawspeed::ByteStream
    assertStmts:
    - condition: (bs0.getPosition() == bs1.getPosition())
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (format0 == format1)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    - condition: (format0 == format1)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 155
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 155
    functionName: checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 8
    functionsReached:
    - checkPump
    - createPrefixCodeDecoder
    - assert
    - rawspeed::ByteStream::peekRemainingBuffer
    - rawspeed::ByteStream::getPosition
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void checkFlavour(rawspeed::ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:162,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:171,1
    - Dst: checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:173,1
    - Dst: checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:176,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:179,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    constantsTouched: []
    func_position:
      end: 186
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 186
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
    functionUses: 2
    functionsReached:
    - __builtin_unreachable
    - assert
    - checkFlavour
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template decode<Pump, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 6
    functionsReached:
    - template decode<Pump, IsFullDecode>
    linkageType: ''
    returnType: void
    signature: void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT&
      ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:61,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:62,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 6
    functionsReached:
    - workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT&
      ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:69,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:71,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:76,1
    - Dst: rawspeed::ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:77,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:80,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:83,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:86,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 9
    functionsReached:
    - checkPump
    - createPrefixCodeDecoder
    - rawspeed::ByteStream::peekRemainingBuffer
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void checkFlavour(rawspeed::ByteStream bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template decode<Pump, IsFullDecode>
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: workloop
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 7
    functionsReached:
    - template decode<Pump, IsFullDecode>
    linkageType: ''
    returnType: void
    signature: void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT&
      ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isFullDecode
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:61,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:62,1
    - Dst: workloop
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - ' ht'
    argTypes:
    - rawspeed::Array1DRef<const uint8_t>
    - HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: checkPump
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 7
    functionsReached:
    - workloop
    - isFullDecode
    linkageType: ''
    returnType: void
    signature: void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT&
      ht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:69,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:71,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:76,1
    - Dst: rawspeed::ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:77,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:80,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:83,1
    - Dst: checkPump
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:86,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bs
    argTypes:
    - rawspeed::ByteStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: checkFlavour
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 9
    functionsReached:
    - checkPump
    - createPrefixCodeDecoder
    - rawspeed::ByteStream::peekRemainingBuffer
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: void
    signature: void checkFlavour(rawspeed::ByteStream bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:98,1
    - Dst: rawspeed::ByteStream::getByte
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:107,1
    - Dst: checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:109,1
    - Dst: checkFlavour
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:112,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:115,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
    functionUses: 2
    functionsReached:
    - __builtin_unreachable
    - assert
    - checkFlavour
    - rawspeed::ByteStream::getByte
    - ThrowRSE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:47,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:50,1
    - Dst: rawspeed::PanasonicV7Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:51,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:53,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::PanasonicV7Decompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::createData
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:37,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:49,1
    - Dst: rawspeed::SonyArw1Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:51,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:53,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - rawspeed::SonyArw1Decompressor::decompress
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:43,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:53,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:54,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:55,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:56,1
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:58,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:60,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:62,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:64,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:64,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:65,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:69,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:69,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:70,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:70,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:72,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:75,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:77,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:78,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:78,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:79,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:82,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:83,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:83,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:86,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:86,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:90,1
    - Dst: rawspeed::iRectangle2D::iRectangle2D
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:93,1
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:95,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:96,1
    - Dst: rawspeed::LJpegDecompressor::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:97,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:99,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 106
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 106
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::iRectangle2D::iRectangle2D
    - rawspeed::ByteStream::getU32
    - rawspeed::implicit_cast<int>
    - createPrefixCodeDecoder
    - rawspeed::ByteStream::get
    - std::generate_n
    - rawspeed::ByteStream::getSubStream
    - rawspeed::ByteStream::check
    - rawspeed::iPoint2D::iPoint2D
    - std::vector::size
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - std::back_inserter
    - rawspeed::ByteStream::getI32
    - rawspeed::LJpegDecompressor::decode
    - ThrowRSE
    - std::vector::reserve
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:49,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:53,1
    - Dst: rawspeed::PanasonicV4Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:54,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:56,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - rawspeed::PanasonicV4Decompressor::decompress
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:41,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:51,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:53,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:53,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:55,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:56,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:57,1
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:59,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:59,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:62,1
    - Dst: rawspeed::PhaseOneDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:63,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:65,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp
    - condition: (strips.size() == numStrips)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getU32
    - rawspeed::PhaseOneDecompressor::decompress
    - std::vector::size
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::createData
    - std::back_inserter
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - std::generate_n
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:37,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:49,1
    - Dst: rawspeed::OlympusDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:51,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:53,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::OlympusDecompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:50,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: std::max
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:55,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:56,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::emplace_back
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bs
    - sizesBs
    - out
    argTypes:
    - ByteStream
    - ByteStream
    - std::vector<Array1DRef<const uint8_t>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed::getTrailingStrips
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getRemainSize
    - std::max
    - std::vector<Array1DRef<const uint8_t>>*::reserve
    - std::vector<Array1DRef<const uint8_t>>*::emplace_back
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getTrailingStrips(ByteStream bs, ByteStream sizesBs,\n
      \                            std::vector<Array1DRef<const uint8_t>>* out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:50,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: std::max
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:55,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:56,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::emplace_back
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bs
    - sizesBs
    - out
    argTypes:
    - ByteStream
    - ByteStream
    - std::vector<Array1DRef<const uint8_t>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed::getTrailingStrips
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getRemainSize
    - std::max
    - std::vector<Array1DRef<const uint8_t>>*::reserve
    - std::vector<Array1DRef<const uint8_t>>*::emplace_back
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getTrailingStrips(ByteStream bs, ByteStream sizesBs,\n
      \                            std::vector<Array1DRef<const uint8_t>>* out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:67,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:77,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:78,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:82,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:84,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:85,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:86,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:87,1
    - Dst: ByteStream::getArray
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: ByteStream::getArray
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: rawspeed::getTrailingStrips
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:93,1
    - Dst: rawspeed::getTrailingStrips
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:97,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:99,1
    - Dst: RawImage::getDataType
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:103,1
    - Dst: RawImage::getBpp
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:105,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:109,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:110,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:111,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:112,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:113,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:114,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:117,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:118,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:118,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:119,1
    - Dst: PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:121,1
    - Dst: RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:122,1
    - Dst: PanasonicV8Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:123,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:124,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 130
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 130
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getArray
    - RawImage::getBpp
    - ByteStream::getU32
    - rawspeed::getAsArray1DRef
    - ByteStream::getStream
    - PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
    - RawImage::getDataType
    - RawImage::createData
    - PanasonicV8Decompressor::decompress
    - auto::getVector
    - rawspeed::MSan::CheckMemIsInitialized
    - __builtin_unreachable
    - ThrowRDE
    - assert
    - RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::getTrailingStrips
    - auto::reserve
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:50,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: std::max
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:55,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:56,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::emplace_back
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bs
    - sizesBs
    - out
    argTypes:
    - ByteStream
    - ByteStream
    - std::vector<Array1DRef<const uint8_t>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed::getTrailingStrips
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getRemainSize
    - std::max
    - std::vector<Array1DRef<const uint8_t>>*::reserve
    - std::vector<Array1DRef<const uint8_t>>*::emplace_back
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getTrailingStrips(ByteStream bs, ByteStream sizesBs,\n
      \                            std::vector<Array1DRef<const uint8_t>>* out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:49,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:50,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: std::max
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:53,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:55,1
    - Dst: ByteStream::getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:56,1
    - Dst: std::vector<Array1DRef<const uint8_t>>*::emplace_back
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    - Dst: ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bs
    - sizesBs
    - out
    argTypes:
    - ByteStream
    - ByteStream
    - std::vector<Array1DRef<const uint8_t>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: rawspeed::getTrailingStrips
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 1
    functionsReached:
    - ByteStream::getU32
    - ByteStream::getBuffer
    - ByteStream::getRemainSize
    - std::max
    - std::vector<Array1DRef<const uint8_t>>*::reserve
    - std::vector<Array1DRef<const uint8_t>>*::emplace_back
    - rawspeed::invariant
    linkageType: ''
    returnType: ByteStream
    signature: "ByteStream getTrailingStrips(ByteStream bs, ByteStream sizesBs,\n
      \                            std::vector<Array1DRef<const uint8_t>>* out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:67,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:76,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:77,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:78,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:79,1
    - Dst: ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:80,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:82,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:84,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:85,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:86,1
    - Dst: ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:87,1
    - Dst: ByteStream::getArray
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:88,1
    - Dst: ByteStream::getArray
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:89,1
    - Dst: rawspeed::getTrailingStrips
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:93,1
    - Dst: rawspeed::getTrailingStrips
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:97,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:99,1
    - Dst: RawImage::getDataType
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:103,1
    - Dst: RawImage::getBpp
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:104,1
    - Dst: ThrowRDE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:105,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:109,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:110,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:111,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:112,1
    - Dst: auto::getVector
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:113,1
    - Dst: auto::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:114,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:117,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:118,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:118,1
    - Dst: rawspeed::getAsArray1DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:119,1
    - Dst: PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:121,1
    - Dst: RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:122,1
    - Dst: PanasonicV8Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:123,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:124,1
    - Dst: RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 130
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 130
    functionName: rawspeed::LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    functionUses: 0
    functionsReached:
    - ByteStream::getArray
    - RawImage::getBpp
    - ByteStream::getU32
    - rawspeed::getAsArray1DRef
    - ByteStream::getStream
    - PanasonicV8Decompressor::DecompressorParamsBuilder::getDecompressorParams
    - RawImage::getDataType
    - RawImage::createData
    - PanasonicV8Decompressor::decompress
    - auto::getVector
    - rawspeed::MSan::CheckMemIsInitialized
    - __builtin_unreachable
    - ThrowRDE
    - assert
    - RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::getTrailingStrips
    - auto::reserve
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:49,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:52,1
    - Dst: rawspeed::SamsungV0Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:53,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:55,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::SamsungV0Decompressor::decompress
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:51,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:54,1
    - Dst: rawspeed::NikonDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:55,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:57,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::NikonDecompressor::decompress
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:37,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:48,1
    - Dst: rawspeed::HasselbladLJpegDecoder::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:49,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:51,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::HasselbladLJpegDecoder::decode
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:48,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:51,1
    - Dst: rawspeed::SamsungV1Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:52,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:54,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    - rawspeed::SamsungV1Decompressor::decompress
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:38,1
    - Dst: CreateCFA
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:49,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:50,1
    - Dst: rawspeed::FujiDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:51,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:53,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 60
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - rawspeed::FujiDecompressor::decompress
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - CreateCFA
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:50,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:53,1
    - Dst: rawspeed::KodakDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:55,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:57,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getU32
    - rawspeed::KodakDecompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::createData
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:38,1
    - Dst: rawspeed::Optional::Optional
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:52,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:53,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:56,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:59,1
    - Dst: rawspeed::PentaxDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:60,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:62,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::PentaxDecompressor::decompress
    - rawspeed::Optional::Optional
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:48,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:51,1
    - Dst: rawspeed::PanasonicV5Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:52,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:54,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::PanasonicV5Decompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: DummyLJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: rawspeed::ByteStream::size_type
    signature: rawspeed::ByteStream::size_type decodeScan() final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' bs'
    - ' img'
    argTypes:
    - rawspeed::ByteStream
    - rawspeed::RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: DummyLJpegDecoder::DummyLJpegDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DummyLJpegDecoder(const rawspeed::ByteStream& bs,\n                    const
      rawspeed::RawImage& img)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: DummyLJpegDecoder::decode
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    linkageType: ''
    returnType: void
    signature: void decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowRDE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: DummyLJpegDecoder::decodeScan
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - ThrowRDE
    linkageType: ''
    returnType: rawspeed::ByteStream::size_type
    signature: rawspeed::ByteStream::size_type decodeScan() final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' bs'
    - ' img'
    argTypes:
    - rawspeed::ByteStream
    - rawspeed::RawImage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: DummyLJpegDecoder::DummyLJpegDecoder
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DummyLJpegDecoder(const rawspeed::ByteStream& bs,\n                    const
      rawspeed::RawImage& img)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::AbstractLJpegDecoder::decodeSOI
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: DummyLJpegDecoder::decode
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::AbstractLJpegDecoder::decodeSOI
    linkageType: ''
    returnType: void
    signature: void decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:54,1
    - Dst: DummyLJpegDecoder::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:65,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - assert
    - rawspeed::RawImage::createData
    - DummyLJpegDecoder::decode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:48,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:51,1
    - Dst: rawspeed::PanasonicV6Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:52,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:54,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::PanasonicV6Decompressor::decompress
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:38,1
    - Dst: CreateCFA
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:51,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:52,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:53,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:56,1
    - Dst: rawspeed::VC5Decompressor::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:57,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:61,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getU32
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - CreateCFA
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getI32
    - rawspeed::VC5Decompressor::decode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:39,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:56,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:57,1
    - Dst: rawspeed::HasselbladDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:58,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:60,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::HasselbladDecompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - createPrefixCodeDecoder
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getSubStream
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:47,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:49,1
    - Dst: rawspeed::SonyArw2Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:51,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:53,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::SonyArw2Decompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::ByteStream::getStream
    - rawspeed::RawImage::createData
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:38,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:49,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:50,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:51,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:57,1
    - Dst: rawspeed::Cr2LJpegDecoder::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:58,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:60,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::get
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::Cr2LJpegDecoder::decode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:39,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:50,1
    - Dst: rawspeed::Optional::Optional
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:52,1
    - Dst: rawspeed::ByteStream::getBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:54,1
    - Dst: rawspeed::ByteStream::peekRemainingBuffer
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:58,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:61,1
    - Dst: rawspeed::CrwDecompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:62,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:64,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getU32
    - rawspeed::Optional::Optional
    - rawspeed::CrwDecompressor::decompress
    - rawspeed::MSan::CheckMemIsInitialized
    - rawspeed::ByteStream::peekRemainingBuffer
    - assert
    - rawspeed::ByteStream::getBuffer
    - rawspeed::RawImage::createData
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:36,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:46,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:47,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:48,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:49,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:50,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:51,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:52,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:55,1
    - Dst: rawspeed::LJpegDecoder::decode
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:56,1
    - Dst: rawspeed::iPoint2D::iPoint2D
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::ByteStream::getU32
    - rawspeed::iPoint2D::iPoint2D
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::LJpegDecoder::decode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:59,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:69,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:70,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:71,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:75,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:76,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:80,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:81,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:82,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:87,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:89,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:91,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:91,1
    - Dst: createPrefixCodeDecoder
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:92,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:96,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:96,1
    - Dst: rawspeed::ByteStream::getU32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:97,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:97,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:99,1
    - Dst: rawspeed::ByteStream::check
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:102,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:104,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:105,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:105,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:106,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:111,1
    - Dst: std::generate_n
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:112,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:113,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:117,1
    - Dst: std::vector::size
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:117,1
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:123,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:124,1
    - Dst: rawspeed::Cr2Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:125,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:127,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 134
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 134
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::Cr2Decompressor::decompress
    - rawspeed::ByteStream::getU32
    - rawspeed::ByteStream::check
    - std::vector::reserve
    - std::vector::size
    - rawspeed::implicit_cast<int>
    - rawspeed::MSan::CheckMemIsInitialized
    - createPrefixCodeDecoder
    - assert
    - rawspeed::RawImage::createData
    - std::back_inserter
    - rawspeed::ByteStream::get
    - rawspeed::ByteStream::getI32
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - ThrowRSE
    - std::generate_n
    - rawspeed::ByteStream::getSubStream
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:37,1
    - Dst: rawspeed::ByteStream::get
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:47,1
    - Dst: rawspeed::ByteStream::getStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:48,1
    - Dst: rawspeed::ByteStream::getRemainSize
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:48,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:51,1
    - Dst: rawspeed::SamsungV2Decompressor::decompress
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:52,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:54,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::MSan::CheckMemIsInitialized
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::ByteStream::getStream
    - rawspeed::ByteStream::get
    - rawspeed::SamsungV2Decompressor::decompress
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getRemainSize
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:39,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:49,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:50,1
    - Dst: rawspeed::ByteStream::getI32
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:52,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:53,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:54,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:56,1
    - Dst: static_cast<int>
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:57,1
    - Dst: rawspeed::getAsBitOrder
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:58,1
    - Dst: ThrowRSE
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:60,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:62,1
    - Dst: rawspeed::ByteStream::getSubStream
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:66,1
    - Dst: rawspeed::iRectangle2D::iRectangle2D
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:67,1
    - Dst: rawspeed::RawImage::createData
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:69,1
    - Dst: rawspeed::UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:70,1
    - Dst: rawspeed::MSan::CheckMemIsInitialized
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:72,1
    - Dst: rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
      Src: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp
    constantsTouched: []
    func_position:
      end: 79
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 79
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::iRectangle2D::iRectangle2D
    - rawspeed::getAsBitOrder
    - rawspeed::MSan::CheckMemIsInitialized
    - __builtin_unreachable
    - assert
    - rawspeed::RawImage::createData
    - rawspeed::UncompressedDecompressor::readUncompressedRaw
    - rawspeed::RawImage::getByteDataAsUncroppedArray2DRef
    - rawspeed::ByteStream::getI32
    - static_cast<int>
    - ThrowRSE
    - rawspeed::ByteStream::getSubStream
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:61,1
    - Dst: rawspeed::TiffParser::parse
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:66,1
    - Dst: rawspeed::PefDecoder::isAppropriateDecoder
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:70,1
    - Dst: auto::get
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:70,1
    - Dst: std::make_unique<DECODER>
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:72,1
    - Dst: std::move
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:72,1
    - Dst: auto::decodeRaw
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:79,1
    - Dst: auto::decodeMetaData
      Src: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Data)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp
    functionUses: 2
    functionsReached:
    - rawspeed::TiffParser::parse
    - auto::get
    - rawspeed::PefDecoder::isAppropriateDecoder
    - std::move
    - auto::decodeMetaData
    - std::make_unique<DECODER>
    - auto::decodeRaw
    - assert
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pugi::xml_document::load_file
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:40,1
    - Dst: pugi::xml_document::load_file
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:43,1
    - Dst: pugi::as_wide
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:43,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:46,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: BM_pugixml_load_cameras_xml
    functionSourceFile: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp
    functionUses: 0
    functionsReached:
    - pugi::xml_document::load_file
    - pugi::as_wide
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_pugixml_load_cameras_xml(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: BM_CameraMetaData
    functionSourceFile: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_CameraMetaData(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pugi::xml_document::load_file
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:40,1
    - Dst: pugi::xml_document::load_file
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:43,1
    - Dst: pugi::as_wide
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:43,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:46,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: BM_pugixml_load_cameras_xml
    functionSourceFile: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp
    functionUses: 0
    functionsReached:
    - pugi::xml_document::load_file
    - pugi::as_wide
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_pugixml_load_cameras_xml(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: BM_CameraMetaData
    functionSourceFile: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void BM_CameraMetaData(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:35,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:35,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:48,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:49,1
    - Dst: copyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:52,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:52,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:53,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:57,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:57,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:58,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:60,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' state'
    - padddedRows
    argTypes:
    - benchmark::State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: BM_CopyPixels
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - iPoint2D::area
    - reinterpret_cast<std::byte*>
    - benchmark::Counter
    - areaToRectangle
    - counters::insert
    - reinterpret_cast<const std::byte*>
    - range
    - SetComplexityN
    - static_cast<size_t>
    - copyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels(benchmark::State& state, bool padddedRows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: BM_CopyPixels2DContiguous
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - BM_CopyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels2DContiguous(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: BM_CopyPixels2DStrided
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - BM_CopyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels2DStrided(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::MeasureProcessCPUTime
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:74,1
    - Dst: benchmark::internal::Benchmark*::UseRealTime
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:75,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:76,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:82,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:83,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:89,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 93
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::MeasureProcessCPUTime
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmark::internal::Benchmark*::UseRealTime
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:35,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:35,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:48,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:49,1
    - Dst: copyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:52,1
    - Dst: reinterpret_cast<std::byte*>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:52,1
    - Dst: reinterpret_cast<const std::byte*>
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:53,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:57,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:57,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:58,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:60,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' state'
    - padddedRows
    argTypes:
    - benchmark::State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: BM_CopyPixels
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 2
    functionsReached:
    - iPoint2D::area
    - reinterpret_cast<std::byte*>
    - benchmark::Counter
    - areaToRectangle
    - counters::insert
    - reinterpret_cast<const std::byte*>
    - range
    - SetComplexityN
    - static_cast<size_t>
    - copyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels(benchmark::State& state, bool padddedRows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: BM_CopyPixels2DContiguous
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - BM_CopyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels2DContiguous(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BM_CopyPixels
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: BM_CopyPixels2DStrided
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - BM_CopyPixels
    linkageType: ''
    returnType: void
    signature: void BM_CopyPixels2DStrided(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::MeasureProcessCPUTime
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:74,1
    - Dst: benchmark::internal::Benchmark*::UseRealTime
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:75,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:76,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:82,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:83,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:89,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 93
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::MeasureProcessCPUTime
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmark::internal::Benchmark*::UseRealTime
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:61,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:71,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:73,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:74,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:81,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:88,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:89,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 100
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 100
    functionName: rawspeed::BM_Broadcast
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - std::vector::clear
    - std::vector::reserve
    - benchmark::Counter
    - std::vector::size
    - benchmark::DoNotOptimize
    - assert
    - rawspeed::getMaybeCoalescingOutputIterator
    - roundUpDivisionSafe
    - std::back_inserter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Broadcast(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:105,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:113,1
    - Dst: Array1DRef
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:114,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:122,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:124,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:125,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:128,1
    - Dst: chunk
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:133,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:139,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:140,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: rawspeed::BM_Copy
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - rawspeed::implicit_cast<int>
    - roundUpDivisionSafe
    - std::vector::clear
    - auto::begin
    - benchmark::Counter
    - counters::insert
    - auto::getBlock
    - SetComplexityN
    - chunk
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - range
    - std::vector::data
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    linkageType: ''
    returnType: void
    signature: void BM_Copy(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:154,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:160,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:161,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:165,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:167,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 2
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:61,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:71,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:73,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:74,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:81,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:88,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:89,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 100
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 100
    functionName: rawspeed::BM_Broadcast
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - std::vector::clear
    - std::vector::reserve
    - benchmark::Counter
    - std::vector::size
    - benchmark::DoNotOptimize
    - assert
    - rawspeed::getMaybeCoalescingOutputIterator
    - roundUpDivisionSafe
    - std::back_inserter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Broadcast(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:105,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:113,1
    - Dst: Array1DRef
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:114,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:122,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:124,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:125,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:128,1
    - Dst: chunk
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:133,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:139,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:140,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: rawspeed::BM_Copy
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - rawspeed::implicit_cast<int>
    - roundUpDivisionSafe
    - std::vector::clear
    - auto::begin
    - benchmark::Counter
    - counters::insert
    - auto::getBlock
    - SetComplexityN
    - chunk
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - range
    - std::vector::data
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    linkageType: ''
    returnType: void
    signature: void BM_Copy(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:154,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:160,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:161,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:165,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:167,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 4
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:61,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:71,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:73,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:74,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:81,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:88,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:89,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 100
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 100
    functionName: rawspeed::BM_Broadcast
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - std::vector::clear
    - std::vector::reserve
    - benchmark::Counter
    - std::vector::size
    - benchmark::DoNotOptimize
    - assert
    - rawspeed::getMaybeCoalescingOutputIterator
    - roundUpDivisionSafe
    - std::back_inserter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Broadcast(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:105,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:113,1
    - Dst: Array1DRef
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:114,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:122,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:124,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:125,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:128,1
    - Dst: chunk
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:133,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:139,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:140,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: rawspeed::BM_Copy
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - rawspeed::implicit_cast<int>
    - roundUpDivisionSafe
    - std::vector::clear
    - auto::begin
    - benchmark::Counter
    - counters::insert
    - auto::getBlock
    - SetComplexityN
    - chunk
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - range
    - std::vector::data
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    linkageType: ''
    returnType: void
    signature: void BM_Copy(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:154,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:160,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:161,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:165,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:167,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 6
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:61,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:64,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:68,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:71,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:73,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:74,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:81,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:86,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:88,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:89,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:91,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 100
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 100
    functionName: rawspeed::BM_Broadcast
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - std::vector::clear
    - std::vector::reserve
    - benchmark::Counter
    - std::vector::size
    - benchmark::DoNotOptimize
    - assert
    - rawspeed::getMaybeCoalescingOutputIterator
    - roundUpDivisionSafe
    - std::back_inserter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Broadcast(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:105,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:113,1
    - Dst: Array1DRef
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:114,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:116,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:119,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:122,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:124,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:125,1
    - Dst: auto::getBlock
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:128,1
    - Dst: chunk
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:133,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:137,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:139,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:140,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:142,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (implicit_cast<int64_t>(output.size()) == numChunks)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: rawspeed::BM_Copy
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef
    - rawspeed::implicit_cast<int>
    - roundUpDivisionSafe
    - std::vector::clear
    - auto::begin
    - benchmark::Counter
    - counters::insert
    - auto::getBlock
    - SetComplexityN
    - chunk
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - range
    - std::vector::data
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    linkageType: ''
    returnType: void
    signature: void BM_Copy(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:154,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:160,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:161,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:165,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:167,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: rawspeed::fixedLengthLoad
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Array1DRef<std::byte>::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoad(Array1DRef<std::byte> out,\n                                             Array1DRef<const
      std::byte> in,\n                                             int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:59,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::fixedLengthLoad
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:62,1
    - Dst: Callable
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - rawspeed::Array1DRef<std::byte>
    - rawspeed::Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: rawspeed::fixedLengthLoadOr
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<std::byte>::size
    - rawspeed::fixedLengthLoad
    - Callable
    - rawspeed::invariant
    - rawspeed::Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoadOr(rawspeed::Array1DRef<std::byte> out,\n                  rawspeed::Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: rawspeed::fixedLengthLoad
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 1
    functionsReached:
    - Array1DRef<std::byte>::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoad(Array1DRef<std::byte> out,\n                                             Array1DRef<const
      std::byte> in,\n                                             int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:59,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::fixedLengthLoad
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:62,1
    - Dst: Callable
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - rawspeed::Array1DRef<std::byte>
    - rawspeed::Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: rawspeed::fixedLengthLoadOr
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<std::byte>::size
    - rawspeed::fixedLengthLoad
    - Callable
    - rawspeed::invariant
    - rawspeed::Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoadOr(rawspeed::Array1DRef<std::byte> out,\n                  rawspeed::Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: rawspeed::fixedLengthLoad
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 2
    functionsReached:
    - Array1DRef<std::byte>::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoad(Array1DRef<std::byte> out,\n                                             Array1DRef<const
      std::byte> in,\n                                             int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:59,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::fixedLengthLoad
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:62,1
    - Dst: Callable
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - rawspeed::Array1DRef<std::byte>
    - rawspeed::Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: rawspeed::fixedLengthLoadOr
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<std::byte>::size
    - rawspeed::fixedLengthLoad
    - Callable
    - rawspeed::invariant
    - rawspeed::Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoadOr(rawspeed::Array1DRef<std::byte> out,\n                  rawspeed::Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:40,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:41,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:42,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:43,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:46,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:47,1
    - Dst: rawspeed::variableLengthLoadNaiveViaMemcpy
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - Array1DRef<std::byte>
    - Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: rawspeed::fixedLengthLoad
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 3
    functionsReached:
    - Array1DRef<std::byte>::size
    - rawspeed::variableLengthLoadNaiveViaMemcpy
    - Array1DRef<const std::byte>::size
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoad(Array1DRef<std::byte> out,\n                                             Array1DRef<const
      std::byte> in,\n                                             int inPos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:56,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:57,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:58,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:59,1
    - Dst: rawspeed::Array1DRef<std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::Array1DRef<const std::byte>::size
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:61,1
    - Dst: rawspeed::fixedLengthLoad
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:62,1
    - Dst: Callable
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - inPos
    argTypes:
    - rawspeed::Array1DRef<std::byte>
    - rawspeed::Array1DRef<const std::byte>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: rawspeed::fixedLengthLoadOr
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::Array1DRef<std::byte>::size
    - rawspeed::fixedLengthLoad
    - Callable
    - rawspeed::invariant
    - rawspeed::Array1DRef<const std::byte>::size
    linkageType: ''
    returnType: void
    signature: "void fixedLengthLoadOr(rawspeed::Array1DRef<std::byte> out,\n                  rawspeed::Array1DRef<const
      std::byte> in, int inPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:85,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:85,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:86,1
    - Dst: rawspeed::Array1DRef<const std::byte>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:91,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:92,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:92,1
    - Dst: rawspeed::Array1DRef<std::byte>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:95,1
    - Dst: std::array::data
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:96,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:96,1
    - Dst: Impl
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:100,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:101,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:101,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:105,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:106,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:108,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:108,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:112,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: BM_Impl
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::Array1DRef<std::byte>
    - auto::begin
    - rawspeed::implicit_cast<int>
    - Impl
    - rawspeed::Array1DRef<const std::byte>
    - rawspeed::RAWSPEED_READNONE::roundUp
    - benchmark::DoNotOptimize
    - std::array::data
    - benchmark::Counter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Impl(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:120,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:126,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:127,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:131,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:133,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: GEN_CALLABLE
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_CALLABLE(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: GEN_TIME
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_TIME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: GEN_WRAPPER
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_WRAPPER(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: GEN_WRAPPER
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_WRAPPER(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:85,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:85,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:86,1
    - Dst: rawspeed::Array1DRef<const std::byte>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:91,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:92,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:92,1
    - Dst: rawspeed::Array1DRef<std::byte>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:95,1
    - Dst: std::array::data
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:96,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:96,1
    - Dst: Impl
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:100,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:101,1
    - Dst: auto::begin
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:101,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:105,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:106,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:108,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:108,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:112,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: BM_Impl
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::Array1DRef<std::byte>
    - auto::begin
    - rawspeed::implicit_cast<int>
    - Impl
    - rawspeed::Array1DRef<const std::byte>
    - rawspeed::RAWSPEED_READNONE::roundUp
    - benchmark::DoNotOptimize
    - std::array::data
    - benchmark::Counter
    - complexity_length_n
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Impl(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:120,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:126,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:127,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:131,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:133,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(I, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: GEN_CALLABLE
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_CALLABLE(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: GEN_TIME
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_TIME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: GEN_WRAPPER
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_WRAPPER(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: GEN_WRAPPER
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_WRAPPER(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:35,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:35,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: construct
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - range
    - rawspeed::implicit_cast<size_t>
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void construct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: Type
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: construct_with_zeroinit
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - range
    - rawspeed::implicit_cast<size_t>
    - Type
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void construct_with_zeroinit(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: worker
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:49,1
    - Dst: worker
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:52,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:54,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:55,1
    - Dst: rawspeed::implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:56,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:58,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:59,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:59,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' state'
    - worker
    argTypes:
    - benchmark::State
    - Worker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: BM_std_vector
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - SetItemsProcessed
    - benchmark::Counter
    - worker
    - range
    - SetComplexityN
    - SetBytesProcessed
    - rawspeed::implicit_cast<double>
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_std_vector(benchmark::State& state, Worker worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:64,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:65,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: BENCHMARK_CAPTURE_NAME
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_CAPTURE_NAME(func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:35,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:35,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: construct
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - range
    - rawspeed::implicit_cast<size_t>
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void construct(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: Type
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:42,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: construct_with_zeroinit
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - range
    - rawspeed::implicit_cast<size_t>
    - Type
    - benchmark::DoNotOptimize
    linkageType: ''
    returnType: void
    signature: void construct_with_zeroinit(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: worker
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:49,1
    - Dst: worker
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:52,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:54,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:55,1
    - Dst: rawspeed::implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:56,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:58,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:59,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:59,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' state'
    - worker
    argTypes:
    - benchmark::State
    - Worker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: BM_std_vector
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - SetItemsProcessed
    - benchmark::Counter
    - worker
    - range
    - SetComplexityN
    - SetBytesProcessed
    - rawspeed::implicit_cast<double>
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_std_vector(benchmark::State& state, Worker worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:64,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:65,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: BENCHMARK_CAPTURE_NAME
    functionSourceFile: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_CAPTURE_NAME(func, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:92,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:95,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:96,1
    - Dst: reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:97,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:97,1
    - Dst: std::accumulate
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: end
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:104,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:107,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:108,1
    - Dst: begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:110,1
    - Dst: end
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:111,1
    - Dst: controlSequenceStartDistribution
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:117,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:119,1
    - Dst: numConsecutive0xFF00Distribution
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:122,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:123,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:125,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:127,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - numBytesMax
    - AppendStuffingByte
    argTypes:
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: rawspeed::JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp
    functionUses: 0
    functionsReached:
    - visibility
    - reserve
    - emplace_back
    - controlSequenceStartDistribution
    - numConsecutive0xFF00Distribution
    - end
    - begin
    - implicit_cast<double>
    - back
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - invariant
    - std::accumulate
    linkageType: ''
    returnType: void
    signature: "void JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator(\n
      \   const int64_t numBytesMax, bool AppendStuffingByte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:92,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:95,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:96,1
    - Dst: reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:97,1
    - Dst: implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:97,1
    - Dst: std::accumulate
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: end
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:103,1
    - Dst: back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:104,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:107,1
    - Dst: implicit_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:108,1
    - Dst: begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:110,1
    - Dst: end
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:111,1
    - Dst: controlSequenceStartDistribution
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:117,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:119,1
    - Dst: numConsecutive0xFF00Distribution
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:122,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:123,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:125,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:127,1
    - Dst: invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - numBytesMax
    - AppendStuffingByte
    argTypes:
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: rawspeed::JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp
    functionUses: 0
    functionsReached:
    - visibility
    - reserve
    - emplace_back
    - controlSequenceStartDistribution
    - numConsecutive0xFF00Distribution
    - end
    - begin
    - implicit_cast<double>
    - back
    - implicit_cast<size_t>
    - roundUpDivisionSafe
    - invariant
    - std::accumulate
    linkageType: ''
    returnType: void
    signature: "void JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator(\n
      \   const int64_t numBytesMax, bool AppendStuffingByte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const int8_t>
    signature: Array1DRef<const int8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:99,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: dist
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:108,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:110,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - maxBytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: rawspeed::BitVectorLengthsGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - dist
    - rawspeed::implicit_cast
    - emplace_back
    - rawspeed::bitwidth
    - roundUpDivisionSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void BitVectorLengthsGenerator(\n      const int64_t maxBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 8
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: BitVectorLengthsGenerator::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:143,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: Array1DRef::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:155,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:157,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:159,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:162,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:166,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:167,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:171,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:172,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:173,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - condition: (numBytes > 0)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - Array1DRef::begin
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - BitVectorLengthsGenerator::getInput
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:187,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:188,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:194,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:195,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:200,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:202,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* 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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(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: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const int8_t>
    signature: Array1DRef<const int8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:99,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: dist
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:108,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:110,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - maxBytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: rawspeed::BitVectorLengthsGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - dist
    - rawspeed::implicit_cast
    - emplace_back
    - rawspeed::bitwidth
    - roundUpDivisionSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void BitVectorLengthsGenerator(\n      const int64_t maxBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 9
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: BitVectorLengthsGenerator::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:143,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: Array1DRef::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:155,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:157,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:159,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:162,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:166,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:167,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:171,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:172,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:173,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - condition: (numBytes > 0)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - Array1DRef::begin
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - BitVectorLengthsGenerator::getInput
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:187,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:188,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:194,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:195,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:200,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:202,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* 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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(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: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const int8_t>
    signature: Array1DRef<const int8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:99,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: dist
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:108,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:110,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - maxBytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: rawspeed::BitVectorLengthsGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - dist
    - rawspeed::implicit_cast
    - emplace_back
    - rawspeed::bitwidth
    - roundUpDivisionSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void BitVectorLengthsGenerator(\n      const int64_t maxBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 10
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: BitVectorLengthsGenerator::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:143,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: Array1DRef::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:155,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:157,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:159,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:162,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:166,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:167,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:171,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:172,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:173,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - condition: (numBytes > 0)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - Array1DRef::begin
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - BitVectorLengthsGenerator::getInput
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:187,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:188,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:194,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:195,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:200,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:202,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* 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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(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: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const int8_t>
    signature: Array1DRef<const int8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:99,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:106,1
    - Dst: dist
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:108,1
    - Dst: emplace_back
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:110,1
    - Dst: rawspeed::bitwidth
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - maxBytes
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: rawspeed::BitVectorLengthsGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - dist
    - rawspeed::implicit_cast
    - emplace_back
    - rawspeed::bitwidth
    - roundUpDivisionSafe
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void BitVectorLengthsGenerator(\n      const int64_t maxBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 11
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:138,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:139,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:140,1
    - Dst: BitVectorLengthsGenerator::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:143,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: Array1DRef::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:144,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:151,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:155,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:157,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:159,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:162,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:166,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:167,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:171,1
    - Dst: std::vector::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:172,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:173,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:175,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - condition: (numBytes > 0)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - std::vector::size
    - assert
    - std::back_inserter
    - Array1DRef::begin
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - BitVectorLengthsGenerator::getInput
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:187,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:188,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:194,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:195,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:200,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:202,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* 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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(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: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 12
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:93,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:95,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:97,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:99,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: Optional::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:112,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:114,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:115,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:116,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:119,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:123,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:124,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:125,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:129,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:130,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 141
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 141
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Optional::getInput
    - Optional::size
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - Optional::begin
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - assert
    - std::back_inserter
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - Optional::emplace
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:144,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:145,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:151,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:152,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:157,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:159,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - b
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: BENCHMARK_TEMPLATE2_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE2_CAPTURE(func, a, b, test_case_name, ...)
  - 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: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 13
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:93,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:95,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:97,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:99,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: Optional::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:112,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:114,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:115,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:116,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:119,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:123,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:124,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:125,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:129,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:130,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 141
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 141
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Optional::getInput
    - Optional::size
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - Optional::begin
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - assert
    - std::back_inserter
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - Optional::emplace
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:144,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:145,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:151,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:152,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:157,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:159,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - b
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: BENCHMARK_TEMPLATE2_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE2_CAPTURE(func, a, b, test_case_name, ...)
  - 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: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 14
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:93,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:95,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:97,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:99,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: Optional::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:112,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:114,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:115,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:116,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:119,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:123,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:124,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:125,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:129,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:130,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 141
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 141
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Optional::getInput
    - Optional::size
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - Optional::begin
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - assert
    - std::back_inserter
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - Optional::emplace
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:144,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:145,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:151,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:152,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:157,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:159,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - b
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: BENCHMARK_TEMPLATE2_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE2_CAPTURE(func, a, b, test_case_name, ...)
  - 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: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - UnderlyingOutputIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: rawspeed::getMaybeCoalescingOutputIterator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 15
    functionsReached:
    - CoalescingOutputIterator
    linkageType: ''
    returnType: auto
    signature: auto getMaybeCoalescingOutputIterator(UnderlyingOutputIterator e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:85,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:87,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:93,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:95,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:97,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:99,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:101,1
    - Dst: std::vector::reserve
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:108,1
    - Dst: roundUpDivisionSafe
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: Optional::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:109,1
    - Dst: std::vector::clear
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:112,1
    - Dst: PartitioningOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:114,1
    - Dst: rawspeed::getMaybeCoalescingOutputIterator
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:115,1
    - Dst: std::back_inserter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:116,1
    - Dst: BitVacuumer
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:119,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:123,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:124,1
    - Dst: auto::put
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:125,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:129,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:130,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:132,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 141
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 141
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - Optional::getInput
    - Optional::size
    - roundUpDivisionSafe
    - std::numeric_limits<int>::max
    - std::vector::clear
    - PartitioningOutputIterator
    - benchmark::Counter
    - Optional::begin
    - counters::insert
    - SetComplexityN
    - rawspeed::implicit_cast
    - assert
    - std::back_inserter
    - range
    - std::vector::reserve
    - benchmark::DoNotOptimize
    - auto::put
    - complexity_length_n
    - rawspeed::getMaybeCoalescingOutputIterator
    - Optional::emplace
    - BitVacuumer
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:144,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:145,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:151,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:152,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:157,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:159,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - b
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: BENCHMARK_TEMPLATE2_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE2_CAPTURE(func, a, b, test_case_name, ...)
  - 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: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: GEN
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: GEN_T
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_T(A, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:59,1
    - Dst: resize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:60,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - numBytesMax
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: rawspeed::NonJPEGByteStreamGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - resize
    - rawspeed::implicit_cast
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void NonJPEGByteStreamGenerator(\n      const int64_t numBytesMax)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    - Dst: size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: rawspeed::getInput
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - rawspeed::implicit_cast
    - data
    - size
    linkageType: ''
    returnType: Array1DRef<const uint8_t>
    signature: Array1DRef<const uint8_t> getInput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:59,1
    - Dst: resize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:60,1
    - Dst: rawspeed::implicit_cast
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - numBytesMax
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: rawspeed::NonJPEGByteStreamGenerator
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    functionUses: 0
    functionsReached:
    - resize
    - rawspeed::implicit_cast
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: "void NonJPEGByteStreamGenerator(\n      const int64_t numBytesMax)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:60,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:60,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: std::numeric_limits<rawspeed::Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:62,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:64,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:65,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:67,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:70,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:72,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:72,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:73,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:73,1
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:76,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:76,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: rawspeed::Array1DRef::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:84,1
    - Dst: Pump::fill
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:85,1
    - Dst: Pump::skipBitsNoFill
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:89,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:95,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::Array1DRef::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::implicit_cast<uint64_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:99,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:101,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:102,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:102,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:103,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' state'
    - fillSize
    - Step
    argTypes:
    - benchmark::State
    - int
    - int
    assertStmts:
    - condition: "(static_cast<size_t>(state.range(0)) <=\n         std::numeric_limits<rawspeed::Buffer::size_type>::max())"
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step > 0)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: ((fillSize == 1) || rawspeed::isAligned(fillSize, 2))
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (state.range(0) > 0)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step <= STEP_MAX)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: ((Step == 1) || rawspeed::isAligned(Step, 2))
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: "(rawspeed::roundUp(8 * input.size(), fillSize) ==\n         rawspeed::implicit_cast<uint64_t>(processedBits))"
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (fillSize > 0)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step <= fillSize)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (processedBits > fillSize)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (fillSize <= STEP_MAX)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 104
    functionName: BM_BitStreamer
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint64_t>
    - SetBytesProcessed
    - items_processed
    - rawspeed::Array1DRef::size
    - SetItemsProcessed
    - rawspeed::implicit_cast<size_t>
    - rawspeed::implicit_cast<int>
    - rawspeed::RAWSPEED_READNONE::roundUp
    - assert
    - Pump::fill
    - Pump::skipBitsNoFill
    - range
    - std::numeric_limits<rawspeed::Buffer::size_type>::max
    - rawspeed::isAligned
    - SetComplexityN
    - static_cast<size_t>
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_BitStreamer(benchmark::State& state, int fillSize, int Step)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:107,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:108,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:112,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:114,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:116,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:117,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:129,1
    - Dst: std::to_string
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:131,1
    - Dst: benchmark::RegisterBenchmark
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:135,1
    - Dst: auto*::Apply
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pumpName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: registerPump
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - benchmark::RegisterBenchmark
    - auto*::Apply
    linkageType: ''
    returnType: void
    signature: void registerPump(const char* pumpName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:60,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:60,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: static_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:61,1
    - Dst: std::numeric_limits<rawspeed::Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:62,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:64,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:65,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:67,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:70,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:72,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:72,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:73,1
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:73,1
    - Dst: rawspeed::implicit_cast<size_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:76,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:76,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:78,1
    - Dst: rawspeed::Array1DRef::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:84,1
    - Dst: Pump::fill
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:85,1
    - Dst: Pump::skipBitsNoFill
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:89,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:95,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::Array1DRef::size
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:98,1
    - Dst: rawspeed::implicit_cast<uint64_t>
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:99,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:101,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:102,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:102,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:103,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' state'
    - fillSize
    - Step
    argTypes:
    - benchmark::State
    - int
    - int
    assertStmts:
    - condition: "(static_cast<size_t>(state.range(0)) <=\n         std::numeric_limits<rawspeed::Buffer::size_type>::max())"
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step > 0)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: ((fillSize == 1) || rawspeed::isAligned(fillSize, 2))
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (state.range(0) > 0)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step <= STEP_MAX)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: ((Step == 1) || rawspeed::isAligned(Step, 2))
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: "(rawspeed::roundUp(8 * input.size(), fillSize) ==\n         rawspeed::implicit_cast<uint64_t>(processedBits))"
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (fillSize > 0)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (Step <= fillSize)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (processedBits > fillSize)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    - condition: (fillSize <= STEP_MAX)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 104
    functionName: BM_BitStreamer
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - rawspeed::implicit_cast<uint64_t>
    - SetBytesProcessed
    - items_processed
    - rawspeed::Array1DRef::size
    - SetItemsProcessed
    - rawspeed::implicit_cast<size_t>
    - rawspeed::implicit_cast<int>
    - rawspeed::RAWSPEED_READNONE::roundUp
    - assert
    - Pump::fill
    - Pump::skipBitsNoFill
    - range
    - std::numeric_limits<rawspeed::Buffer::size_type>::max
    - rawspeed::isAligned
    - SetComplexityN
    - static_cast<size_t>
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_BitStreamer(benchmark::State& state, int fillSize, int Step)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:107,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:108,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:112,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:114,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:116,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:117,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:129,1
    - Dst: std::to_string
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:131,1
    - Dst: benchmark::RegisterBenchmark
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:135,1
    - Dst: auto*::Apply
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pumpName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: registerPump
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - benchmark::RegisterBenchmark
    - auto*::Apply
    linkageType: ''
    returnType: void
    signature: void registerPump(const char* pumpName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PUMP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: REGISTER_PUMP
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PUMP(PUMP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::MaybeReenterWithoutASLR
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:146,1
    - Dst: REGISTER_PUMP
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:148,1
    - Dst: REGISTER_PUMP
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:149,1
    - Dst: REGISTER_PUMP
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:150,1
    - Dst: REGISTER_PUMP
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:151,1
    - Dst: REGISTER_PUMP
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:152,1
    - Dst: benchmark::Initialize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:154,1
    - Dst: benchmark::RunSpecifiedBenchmarks
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: main
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
    functionUses: 0
    functionsReached:
    - REGISTER_PUMP
    - benchmark::Initialize
    - benchmark::RunSpecifiedBenchmarks
    - benchmark::MaybeReenterWithoutASLR
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:41,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:42,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:49,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:51,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:53,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:55,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: T::getBits
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:66,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:69,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:72,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:73,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - Optional::getInput
    - counters::insert
    - benchmark::Counter
    - Optional::begin
    - benchmark::DoNotOptimize
    - assert
    - complexity_length_n
    - T::getBits
    - Optional::emplace
    - range
    - SetComplexityN
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:88,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:95,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:100,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:102,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: BENCHMARK_TEMPLATE1_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE1_CAPTURE(func, a, test_case_name, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:41,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:42,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:49,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:51,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:53,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:55,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: T::getBits
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:66,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:69,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:72,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:73,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - Optional::getInput
    - counters::insert
    - benchmark::Counter
    - Optional::begin
    - benchmark::DoNotOptimize
    - assert
    - complexity_length_n
    - T::getBits
    - Optional::emplace
    - range
    - SetComplexityN
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:88,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:95,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:100,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:102,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: BENCHMARK_TEMPLATE1_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE1_CAPTURE(func, a, test_case_name, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:41,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:42,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:49,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:51,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:53,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:55,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: T::getBits
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:66,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:69,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:72,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:73,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - Optional::getInput
    - counters::insert
    - benchmark::Counter
    - Optional::begin
    - benchmark::DoNotOptimize
    - assert
    - complexity_length_n
    - T::getBits
    - Optional::emplace
    - range
    - SetComplexityN
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:88,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:95,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:100,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:102,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: BENCHMARK_TEMPLATE1_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE1_CAPTURE(func, a, test_case_name, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:41,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:42,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: std::numeric_limits<int>::max
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:43,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:49,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:51,1
    - Dst: Optional::emplace
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:53,1
    - Dst: Optional::getInput
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:55,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: Optional::begin
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:57,1
    - Dst: T::getBits
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:66,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:67,1
    - Dst: rawspeed::invariant
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:69,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:72,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:73,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:75,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' state'
    - Stuffed
    argTypes:
    - benchmark::State
    - bool
    assertStmts:
    - condition: (numBytes > 0)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    - condition: (numBytes <= std::numeric_limits<int>::max())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: rawspeed::BM
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::numeric_limits<int>::max
    - Optional::getInput
    - counters::insert
    - benchmark::Counter
    - Optional::begin
    - benchmark::DoNotOptimize
    - assert
    - complexity_length_n
    - T::getBits
    - Optional::emplace
    - range
    - SetComplexityN
    - rawspeed::invariant
    linkageType: ''
    returnType: void
    signature: void BM(benchmark::State& state, bool Stuffed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:87,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:88,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:95,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:100,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:102,1
    - Dst: benchmark::internal::Benchmark*::Complexity
      Src: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: rawspeed::CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::Complexity
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - a
    - ','
    - test_case_name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: BENCHMARK_TEMPLATE1_CAPTURE
    functionSourceFile: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_TEMPLATE1_CAPTURE(func, a, test_case_name, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:50,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:50,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:53,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:53,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:56,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:56,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:64,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:67,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:70,1
    - Dst: Cr2sRawInterpolator::interpolate
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:74,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:76,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:76,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:77,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:78,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:79,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:82,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: BM_Cr2sRawInterpolator
    functionSourceFile: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - iPoint2D::area
    - RawImage::getU16DataAsUncroppedArray2DRef
    - roundUp
    - rawspeed::implicit_cast<int>
    - benchmark::Counter
    - Cr2sRawInterpolator::interpolate
    - complexity_length_n
    - areaToRectangle
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Cr2sRawInterpolator(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::MeasureProcessCPUTime
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:88,1
    - Dst: benchmark::internal::Benchmark*::UseRealTime
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:89,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:91,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:93,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:97,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:99,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:101,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::MeasureProcessCPUTime
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmark::internal::Benchmark*::UseRealTime
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:50,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:50,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:53,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:53,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:56,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:56,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:64,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:67,1
    - Dst: RawImage::getU16DataAsUncroppedArray2DRef
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:70,1
    - Dst: Cr2sRawInterpolator::interpolate
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:74,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:76,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:76,1
    - Dst: counters::insert
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:77,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:78,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:79,1
    - Dst: benchmark::Counter
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:82,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: BM_Cr2sRawInterpolator
    functionSourceFile: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - iPoint2D::area
    - RawImage::getU16DataAsUncroppedArray2DRef
    - roundUp
    - rawspeed::implicit_cast<int>
    - benchmark::Counter
    - Cr2sRawInterpolator::interpolate
    - complexity_length_n
    - areaToRectangle
    - counters::insert
    - range
    - SetComplexityN
    linkageType: ''
    returnType: void
    signature: void BM_Cr2sRawInterpolator(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::MeasureProcessCPUTime
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:88,1
    - Dst: benchmark::internal::Benchmark*::UseRealTime
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:89,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:91,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:93,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:97,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:99,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:101,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: CustomArguments
    functionSourceFile: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::MeasureProcessCPUTime
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmark::internal::Benchmark*::UseRealTime
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArguments(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:35,1
    - Dst: std::getenv
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: benchmarkDryRun
    functionSourceFile: /src/librawspeed/bench/librawspeed/bench/Common.cpp
    functionUses: 28
    functionsReached:
    - std::getenv
    - visibility
    linkageType: ''
    returnType: void
    signature: void benchmarkDryRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:41,1
    - Dst: sqrt
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:43,1
    - Dst: sqrt
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:45,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:45,1
    - Dst: static_cast<double>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:45,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:47,1
    - Dst: ceil
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:47,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:48,1
    - Dst: ceil
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:48,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:50,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:50,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:51,1
    - Dst: roundUp
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:51,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:53,1
    - Dst: iPoint2D::area
      Src: /src/librawspeed/bench/librawspeed/bench/Common.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - area
    - aspect
    argTypes:
    - uint64_t
    - iPoint2D
    assertStmts:
    - condition: (dim.area() >= area)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librawspeed/bench/librawspeed/bench/Common.cpp
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: areaToRectangle
    functionSourceFile: /src/librawspeed/bench/librawspeed/bench/Common.cpp
    functionUses: 4
    functionsReached:
    - visibility
    - iPoint2D::area
    - ceil
    - roundUp
    - rawspeed::implicit_cast<int>
    - static_cast<double>
    - assert
    - sqrt
    linkageType: ''
    returnType: void
    signature: void areaToRectangle(uint64_t area, iPoint2D aspect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:54,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:57,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:58,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:58,1
    - Dst: compressBound
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:60,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:61,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:62,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:62,1
    - Dst: compress
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:72,1
    - Dst: compressBound
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' mRaw'
    - bufSize
    argTypes:
    - rawspeed::RawImage
    - uLong*
    assertStmts:
    - condition: (uncompressedLength <= std::numeric_limits<Buffer::size_type>::max())
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (uncompressedLength > 0)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (*bufSize > 0)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (*bufSize <= std::numeric_limits<Buffer::size_type>::max())
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (compressBound(uncompressedLength) >= *bufSize)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: compressChunk
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - compress
    - compressBound
    - assert
    - std::numeric_limits<Buffer::size_type>::max
    - rawspeed::isAligned
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> compressChunk(const rawspeed::RawImage& mRaw,\n
      \                                  uLong* bufSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:80,1
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:82,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:82,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:83,1
    - Dst: compressChunk
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:87,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:89,1
    - Dst: rawspeed::implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:89,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:90,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:90,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:104,1
    - Dst: DeflateDecompressor::decode
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:114,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:117,1
    - Dst: auto::area
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:117,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:119,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (buf.getSize() == cBufSize)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (cBufSize > 0)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 120
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 120
    functionName: BM_DeflateDecompressor
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - DeflateDecompressor::decode
    - compressChunk
    - std::vector::data
    - items_processed
    - SetItemsProcessed
    - __builtin_unreachable
    - Buffer::getSize
    - assert
    - complexity_length_n
    - areaToRectangle
    - rawspeed::implicit_cast<Buffer::size_type>
    - range
    - auto::area
    - rawspeed::isAligned
    - SetComplexityN
    - SetBytesProcessed
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_DeflateDecompressor(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:123,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:125,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:129,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:132,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:134,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: CustomArgs
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArgs(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: GEN_E
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_E(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: GEN_PFS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_PFS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: GEN_PSS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_PSS()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:54,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:57,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:58,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:58,1
    - Dst: compressBound
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:60,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:61,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:62,1
    - Dst: std::numeric_limits<Buffer::size_type>::max
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:62,1
    - Dst: compress
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:68,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:72,1
    - Dst: compressBound
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' mRaw'
    - bufSize
    argTypes:
    - rawspeed::RawImage
    - uLong*
    assertStmts:
    - condition: (uncompressedLength <= std::numeric_limits<Buffer::size_type>::max())
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (uncompressedLength > 0)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (*bufSize > 0)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (*bufSize <= std::numeric_limits<Buffer::size_type>::max())
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (compressBound(uncompressedLength) >= *bufSize)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: compressChunk
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - compress
    - compressBound
    - assert
    - std::numeric_limits<Buffer::size_type>::max
    - rawspeed::isAligned
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> compressChunk(const rawspeed::RawImage& mRaw,\n
      \                                  uLong* bufSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rawspeed::isAligned
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:80,1
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:82,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:82,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:83,1
    - Dst: compressChunk
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:86,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:87,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:89,1
    - Dst: rawspeed::implicit_cast<Buffer::size_type>
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:89,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:90,1
    - Dst: Buffer::getSize
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:90,1
    - Dst: __builtin_unreachable
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:104,1
    - Dst: DeflateDecompressor::decode
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:114,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:117,1
    - Dst: auto::area
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:117,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:118,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:119,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (buf.getSize() == cBufSize)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    - condition: (cBufSize > 0)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 120
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 120
    functionName: BM_DeflateDecompressor
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::RawImage::create
    - DeflateDecompressor::decode
    - compressChunk
    - std::vector::data
    - items_processed
    - SetItemsProcessed
    - __builtin_unreachable
    - Buffer::getSize
    - assert
    - complexity_length_n
    - areaToRectangle
    - rawspeed::implicit_cast<Buffer::size_type>
    - range
    - auto::area
    - rawspeed::isAligned
    - SetComplexityN
    - SetBytesProcessed
    - iterations
    linkageType: ''
    returnType: void
    signature: void BM_DeflateDecompressor(benchmark::State& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:123,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:125,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:129,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:132,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:134,1
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: CustomArgs
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArgs(benchmark::internal::Benchmark* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: GEN_E
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_E(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: GEN_PFS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_PFS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: GEN_PSS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_PSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:51,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:51,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:54,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:55,1
    - Dst: std::lcm
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:55,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:56,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:58,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:61,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:62,1
    - Dst: rawspeed::DataBuffer::DataBuffer
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:64,1
    - Dst: Buffer
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:65,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:65,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:67,1
    - Dst: rawspeed::iRectangle2D::iRectangle2D
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:75,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:77,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:80,1
    - Dst: auto::area
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:80,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:82,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (inputPitchBits % 8 == 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    - condition: (inputPitchBits % BPS::value == 0)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: BM_UncompressedDecompressor
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::iRectangle2D
    - Buffer
    - rawspeed::implicit_cast<int>
    - rawspeed::RawImage::create
    - SetComplexityN
    - items_processed
    - assert
    - areaToRectangle
    - range
    - iterations
    - std::vector::data
    - SetItemsProcessed
    - rawspeed::DataBuffer::DataBuffer
    - rawspeed::RAWSPEED_READNONE::roundUp
    - complexity_length_n
    - std::lcm
    - UncompressedDecompressor::readUncompressedRaw
    - auto::area
    - SetBytesProcessed
    linkageType: ''
    returnType: void
    signature: void BM_UncompressedDecompressor(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:86,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:88,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:90,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: CustomArgs
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArgs(benchmark::internal::Benchmark* b)
  - 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: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: GEN_INNER
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_INNER(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: GEN_F_BPS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_F_BPS(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: GEN_F
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_F(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: GEN_U_BPS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_U_BPS(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: GEN_U
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_U(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: GEN_BO
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_BO(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: areaToRectangle
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:51,1
    - Dst: range
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:51,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:54,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:55,1
    - Dst: std::lcm
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:55,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:56,1
    - Dst: assert
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:58,1
    - Dst: rawspeed::implicit_cast<int>
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:61,1
    - Dst: rawspeed::RAWSPEED_READNONE::roundUp
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:62,1
    - Dst: rawspeed::DataBuffer::DataBuffer
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:64,1
    - Dst: Buffer
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:65,1
    - Dst: std::vector::data
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:65,1
    - Dst: rawspeed::RawImage::create
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:67,1
    - Dst: rawspeed::iRectangle2D::iRectangle2D
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:75,1
    - Dst: UncompressedDecompressor::readUncompressedRaw
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:77,1
    - Dst: SetComplexityN
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:80,1
    - Dst: auto::area
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:80,1
    - Dst: SetItemsProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: complexity_length_n
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: iterations
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:81,1
    - Dst: SetBytesProcessed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:82,1
    - Dst: items_processed
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts:
    - condition: (inputPitchBits % 8 == 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    - condition: (inputPitchBits % BPS::value == 0)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: BM_UncompressedDecompressor
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - rawspeed::iRectangle2D::iRectangle2D
    - Buffer
    - rawspeed::implicit_cast<int>
    - rawspeed::RawImage::create
    - SetComplexityN
    - items_processed
    - assert
    - areaToRectangle
    - range
    - iterations
    - std::vector::data
    - SetItemsProcessed
    - rawspeed::DataBuffer::DataBuffer
    - rawspeed::RAWSPEED_READNONE::roundUp
    - complexity_length_n
    - std::lcm
    - UncompressedDecompressor::readUncompressedRaw
    - auto::area
    - SetBytesProcessed
    linkageType: ''
    returnType: void
    signature: void BM_UncompressedDecompressor(benchmark::State& state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmark::internal::Benchmark*::Unit
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:86,1
    - Dst: benchmarkDryRun
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:88,1
    - Dst: benchmark::internal::Benchmark*::Arg
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:90,1
    - Dst: benchmark::internal::Benchmark*::RangeMultiplier
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:94,1
    - Dst: benchmark::internal::Benchmark*::Range
      Src: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - benchmark::internal::Benchmark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: CustomArgs
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached:
    - benchmark::internal::Benchmark*::Range
    - benchmark::internal::Benchmark*::Arg
    - benchmark::internal::Benchmark*::RangeMultiplier
    - benchmark::internal::Benchmark*::Unit
    - benchmarkDryRun
    linkageType: ''
    returnType: void
    signature: void CustomArgs(benchmark::internal::Benchmark* b)
  - 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: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: GEN_INNER
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_INNER(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: GEN_F_BPS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_F_BPS(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: GEN_F
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_F(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: GEN_U_BPS
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_U_BPS(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: GEN_U
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_U(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: GEN_BO
    functionSourceFile: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_BO(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: rand
    functionSourceFile: /src/librawspeed/.ci/coverity_model.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: std::rand
    functionSourceFile: /src/librawspeed/.ci/coverity_model.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: std::rand
    functionSourceFile: /src/librawspeed/.ci/coverity_model.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand(void)
Fuzzer filename: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- array
- codes/PrefixCodeLookupDecoder.h
- cmath
- sanitizer/asan_interface.h
- codes/PrefixCodeDecoder.h
- cerrno
- io/FileWriter.h
- cctype
- new
- adt/RangeTest.h
- adt/Range.h
- common/XTransPhase.h
- fcntl.h
- decompressors/AbstractDngDecompressor.h
- common/ErrorLog.h
- decompressors/JpegDecompressor.h
- chrono
- fuzz/Common.h
- decoders/RawDecoderException.h
- codes/AbstractPrefixCodeTranscoder.h
- decompressors/VC5Decompressor.h
- fstream
- decompressors/HasselbladDecompressor.h
- bitstreams/BitStreamer.h
- decoders/RawDecoder.h
- decoders/KdcDecoder.h
- adt/PartitioningOutputIterator.h
- set
- io.h
- decoders/ErfDecoder.h
- bitstreams/BitStreamJPEGUtils.h
- decoders/MrwDecoder.h
- adt/Bit.h
- decoders/NakedDecoder.h
- initializer_list
- decoders/ThreefrDecoder.h
- decompressors/PanasonicV8Decompressor.h
- pugixml.hpp
- common/CpuFeatures.h
- memory
- adt/TiledArray2DRef.h
- decoders/SimpleTiffDecoder.h
- adt/AlignedAllocator.h
- adt/CoalescingOutputIterator.h
- RawSpeed-API.h
- decompressors/NikonDecompressor.h
- ostream
- bench/Common.h
- decoders/OrfDecoder.h
- decoders/PefDecoder.h
- adt/NORangesSet.h
- bitstreams/BitStreamerTest.h
- functional
- tiff/CiffTag.h
- bitstreams/BitStreamerMSB32.h
- ratio
- parsers/FiffParserException.h
- algorithm
- io/FileReader.h
- io/MMapReader.h
- cinttypes
- decoders/NefDecoder.h
- ThreadSafetyAnalysis.h
- bitstreams/BitStreamPosition.h
- decoders/SrwDecoder.h
- decompressors/PanasonicV7Decompressor.h
- adt/Array2DRef.h
- decompressors/JpegMarkers.h
- adt/Invariant.h
- decompressors/PanasonicV5Decompressor.h
- metadata/CameraMetaData.h
- zconf.h
- adt/Point.h
- omp.h
- decoders/DngDecoder.h
- sys/mman.h
- sys/sysctl.h
- bitstreams/BitStreamerJPEG.h
- decompressors/Cr2Decompressor.h
- numeric
- unistd.h
- string_view
- decompressors/PanasonicV4Decompressor.h
- parsers/CiffParserException.h
- istream
- io/FileIO.h
- adt/NotARational.h
- decoders/ArwDecoder.h
- common/ChecksumFile.h
- decompressors/AbstractSamsungDecompressor.h
- decompressors/CrwDecompressor.h
- codes/PrefixCodeDecoder/Common.h
- md5.h
- gtest/gtest.h
- type_traits
- cstring
- cstdint
- bitstreams/BitStreamerLSB.h
- bitstreams/BitStreamJPEG.h
- decompressors/KodakDecompressor.h
- decoders/MosDecoder.h
- adt/Mutex.h
- bitstreams/BitVacuumerMSB.h
- adt/BitIterator.h
- decompressors/LJpegDecompressor.h
- AddressSanitizer.h
- cstdio
- adt/iterator_range.h
- benchmark/benchmark.h
- Windows.h
- bitstreams/BitStreamLSB.h
- decompressors/DeflateDecompressor.h
- jpeglib.h
- io/ByteStream.h
- metadata/CameraSensorInfo.h
- bitstreams/BitVacuumerJPEG.h
- bitstreams/BitStreamMSB16.h
- io/Buffer.h
- codes/AbstractPrefixCodeEncoder.h
- gopro/vc5/table17.inc
- metadata/BlackArea.h
- bitstreams/BitVacuumerMSB16.h
- tiff/TiffEntry.h
- decoders/MefDecoder.h
- sstream
- parsers/RawParser.h
- variant
- iterator
- stdint.h
- decompressors/UncompressedDecompressor.h
- ctime
- emmintrin.h
- decoders/DcrDecoder.h
- io/FileIOException.h
- tiff/TiffTag.h
- cstddef
- common/BayerPhase.h
- adt/Optional.h
- metadata/Camera.h
- decompressors/SonyArw1Decompressor.h
- decompressors/SamsungV1Decompressor.h
- adt/DefaultInitAllocatorAdaptor.h
- decoders/IiqDecoder.h
- decompressors/AbstractLJpegDecoder.h
- random
- codes/BinaryPrefixTree.h
- cpuid.h
- bitstreams/BitStreamMSB.h
- codes/PrefixCode.h
- interpolators/Cr2sRawInterpolator.h
- bitstreams/BitStream.h
- decompressors/AbstractDecompressor.h
- exception
- tiff/TiffIFD.h
- decompressors/PentaxDecompressor.h
- common/SimpleLUT.h
- parsers/FiffParser.h
- decompressors/OlympusDecompressor.h
- parsers/CiffParser.h
- codes/AbstractPrefixCodeDecoder.h
- cstdarg
- stdexcept
- rawspeedconfig.h
- io/Endianness.h
- adt/Array1DRef.h
- decoders/Rw2Decoder.h
- codes/HuffmanCode.h
- common/Spline.h
- codes/PrefixCodeVectorDecoder.h
- bitstreams/BitStreamerMSB16.h
- decompressors/Cr2DecompressorImpl.h
- MemorySanitizer.h
- decoders/AbstractTiffDecoder.h
- decompressors/PanasonicV6Decompressor.h
- string
- cassert
- decompressors/PhaseOneDecompressor.h
- adt/Array1DRefExtras.h
- decompressors/Cr2LJpegDecoder.h
- codes/AbstractPrefixCode.h
- io/IOException.h
- bitstreams/BitVacuumer.h
- decoders/Cr2Decoder.h
- bitstreams/BitStreamMSB32.h
- parsers/TiffParser.h
- sys/auxv.h
- iosfwd
- concepts
- common/TableLookUp.h
- zlib.h
- common/RawImage.h
- cstdlib
- codes/PrefixCodeTreeDecoder.h
- EndiannessTest.h
- parsers/TiffParserException.h
- vector
- decoders/CrwDecoder.h
- decompressors/SonyArw2Decompressor.h
- decompressors/FujiDecompressor.h
- sys/stat.h
- decoders/StiDecoder.h
- common/FloatingPoint.h
- iostream
- codes/DummyPrefixCodeDecoder.h
- common/DngOpcodes.h
- map
- ErrorLog.h
- tiff/CiffEntry.h
- adt/VariableLengthLoad.h
- bitstreams/BitStreamerMSB.h
- decoders/RafDecoder.h
- decompressors/HasselbladLJpegDecoder.h
- bitset
- common/RawspeedException.h
- utility
- iomanip
- gmock/gmock.h
- sanitizer/common_interface_defs.h
- sys/types.h
- codes/PrefixCodeVectorEncoder.h
- bitstreams/BitVacuumerMSB32.h
- decompressors/SamsungV2Decompressor.h
- parsers/RawParserException.h
- sanitizer/msan_interface.h
- adt/Casts.h
- intrin.h
- bit
- bitstreams/BitStreams.h
- tuple
- tchar.h
- climits
- metadata/ColorFilterArray.h
- decompressors/SamsungV0Decompressor.h
- elf.h
- common/Common.h
- bitstreams/BitVacuumerLSB.h
- metadata/CameraMetadataException.h
- limits
- adt/CroppedArray2DRef.h
- codes/PrefixCodeLUTDecoder.h
- optional
- decoders/DcsDecoder.h
- decompressors/LJpegDecoder.h
- adt/CroppedArray1DRef.h
- tiff/CiffIFD.h
report: name
sources:
- function_names:
  - main
  - main
  source_file: /src/librawspeed/cmake/Modules/cpu-page-size.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_cachelinesize_from_sysconf
  - get_cachelinesize_from_sysconf
  - get_cachelinesize_from_getauxval
  - get_cachelinesize_from_getauxval
  - get_cachelinesize_from_sysctlbyname
  - get_cachelinesize_from_sysctlbyname
  - get_cachelinesize_from_GetLogicalProcessorInformation
  - get_cachelinesize_from_GetLogicalProcessorInformation
  - main
  source_file: /src/librawspeed/cmake/Modules/cpu-cache-line-size.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - main
  source_file: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: bit_PSE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: bit_PAE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/librawspeed/cmake/Modules/cpu-large-page-size.cpp
      type_or_value: '0x00000040'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - '& operator<<(::std::ostream& os, const intPair<T>& p)'
  - "operator()(const char* darg1, const char* darg2,\n                                        const
    T& arg1, const T& arg2)"
  - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
  - rawspeed_test::AbstractGetByteSwappedTest::SetUp
  - rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
  - rawspeed_test::AbstractGetByteSwappedTest::getBEt
  - rawspeed_test::AbstractGetByteSwappedTest::getLEt
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - '& operator<<(::std::ostream& os, const intPair<T>& p)'
  - "operator()(const char* darg1, const char* darg2,\n                                        const
    T& arg1, const T& arg2)"
  - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
  - rawspeed_test::AbstractGetByteSwappedTest::SetUp
  - rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
  - rawspeed_test::AbstractGetByteSwappedTest::getBEt
  - rawspeed_test::AbstractGetByteSwappedTest::getLEt
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - '& operator<<(::std::ostream& os, const intPair<T>& p)'
  - "operator()(const char* darg1, const char* darg2,\n                                        const
    T& arg1, const T& arg2)"
  - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
  - rawspeed_test::AbstractGetByteSwappedTest::SetUp
  - rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
  - rawspeed_test::AbstractGetByteSwappedTest::getBEt
  - rawspeed_test::AbstractGetByteSwappedTest::getLEt
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - '& operator<<(::std::ostream& os, const intPair<T>& p)'
  - "operator()(const char* darg1, const char* darg2,\n                                        const
    T& arg1, const T& arg2)"
  - rawspeed_test::AbstractGetByteSwappedTest::AbstractGetByteSwappedTest
  - rawspeed_test::AbstractGetByteSwappedTest::SetUp
  - rawspeed_test::AbstractGetByteSwappedTest::getByteSwappedT
  - rawspeed_test::AbstractGetByteSwappedTest::getBEt
  - rawspeed_test::AbstractGetByteSwappedTest::getLEt
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: setupHex
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
      type_or_value: setfill('0') << setw(2 * sizeof(T)) << std::hex
    - item_type: preproc_def
      name: setupHex
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
      type_or_value: setfill('0') << setw(2 * sizeof(T)) << std::hex
    - item_type: preproc_def
      name: setupHex
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
      type_or_value: setfill('0') << setw(2 * sizeof(T)) << std::hex
    - item_type: preproc_def
      name: setupHex
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
      type_or_value: setfill('0') << setw(2 * sizeof(T)) << std::hex
    structs:
    - fields: []
      item_type: struct
      name: HexEquals
      pos:
        line_end: 103
        line_start: 88
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    - fields: []
      item_type: struct
      name: HexEquals
      pos:
        line_end: 103
        line_start: 88
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    - fields: []
      item_type: struct
      name: HexEquals
      pos:
        line_end: 103
        line_start: 88
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    - fields: []
      item_type: struct
      name: HexEquals
      pos:
        line_end: 103
        line_start: 88
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: T
      - name: second
        type: T
      item_type: struct
      name: intPair
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.h
    - fields:
      - name: first
        type: T
      - name: second
        type: T
      item_type: struct
      name: intPair
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.h
    - fields:
      - name: first
        type: T
      - name: second
        type: T
      item_type: struct
      name: intPair
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.h
    - fields:
      - name: first
        type: T
      - name: second
        type: T
      item_type: struct
      name: intPair
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/librawspeed/test/librawspeed/io/EndiannessTest.h
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::MetaHelper
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  - rawspeed_test::TYPED_TEST
  source_file: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FMT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
      type_or_value: '"%s"'
    - item_type: preproc_def
      name: FMT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
      type_or_value: '"%s"'
    - item_type: preproc_def
      name: FMT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
      type_or_value: '"%s"'
    - item_type: preproc_def
      name: FMT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librawspeed/test/librawspeed/test/ExceptionsTest.cpp
      type_or_value: '"%s"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/test/librawspeed/test/RawSpeed.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
  - rawspeed_test::CameraSensorInfoTestDumb::SetUp
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - "& operator<<(std::ostream& os,\n                                  const IsoExpectationsT&
    obj)"
  - rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
  - rawspeed_test::CameraSensorInfoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
  - rawspeed_test::CameraSensorInfoTestDumb::SetUp
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - "& operator<<(std::ostream& os,\n                                  const IsoExpectationsT&
    obj)"
  - rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
  - rawspeed_test::CameraSensorInfoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
  - rawspeed_test::CameraSensorInfoTestDumb::SetUp
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - "& operator<<(std::ostream& os,\n                                  const IsoExpectationsT&
    obj)"
  - rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
  - rawspeed_test::CameraSensorInfoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CameraSensorInfoTestDumb::CameraSensorInfoTestDumb
  - rawspeed_test::CameraSensorInfoTestDumb::SetUp
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::CameraSensorInfoTestDumb::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - "& operator<<(std::ostream& os,\n                                  const IsoExpectationsT&
    obj)"
  - rawspeed_test::CameraSensorInfoTest::CameraSensorInfoTest
  - rawspeed_test::CameraSensorInfoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - main
  source_file: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mMinIso
        type: int
      - name: Iso
        type: int
      - name: mMaxIso
        type: int
      - name: isIsoWithin
        type: bool
      - name: isDefault
        type: bool
      item_type: struct
      name: IsoExpectationsT
      pos:
        line_end: 247
        line_start: 233
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    - fields:
      - name: mMinIso
        type: int
      - name: Iso
        type: int
      - name: mMaxIso
        type: int
      - name: isIsoWithin
        type: bool
      - name: isDefault
        type: bool
      item_type: struct
      name: IsoExpectationsT
      pos:
        line_end: 247
        line_start: 233
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    - fields:
      - name: mMinIso
        type: int
      - name: Iso
        type: int
      - name: mMaxIso
        type: int
      - name: isIsoWithin
        type: bool
      - name: isDefault
        type: bool
      item_type: struct
      name: IsoExpectationsT
      pos:
        line_end: 247
        line_start: 233
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    - fields:
      - name: mMinIso
        type: int
      - name: Iso
        type: int
      - name: mMaxIso
        type: int
      - name: isIsoWithin
        type: bool
      - name: isDefault
        type: bool
      item_type: struct
      name: IsoExpectationsT
      pos:
        line_end: 247
        line_start: 233
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::BlackAreaTest::BlackAreaTest
  - rawspeed_test::BlackAreaTest::SetUp
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::BlackAreaTest::BlackAreaTest
  - rawspeed_test::BlackAreaTest::SetUp
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::BlackAreaTest::BlackAreaTest
  - rawspeed_test::BlackAreaTest::SetUp
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::BlackAreaTest::BlackAreaTest
  - rawspeed_test::BlackAreaTest::SetUp
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::BlackAreaTest::checkHelper
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/metadata/BlackAreaTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::BoolHintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::BoolHintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::BoolHintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::BoolHintTest::SetUp
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/metadata/CameraTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: MyCameraMetaData
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    - fields: []
      item_type: struct
      name: MyCameraMetaData
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    - fields: []
      item_type: struct
      name: MyCameraMetaData
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    - fields: []
      item_type: struct
      name: MyCameraMetaData
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp
    typedefs: []
    union: []
- function_names:
  - '& operator<<(::std::ostream& os, const CFAColor c)'
  - '& operator<<(::std::ostream& os, const CFAColor c)'
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
  - rawspeed_test::ColorFilterArrayTest::SetUp
  - rawspeed_test::setHelper
  - rawspeed_test::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
  - rawspeed_test::ColorFilterArrayShiftTest::SetUp
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
  - rawspeed_test::ColorFilterArrayTest::SetUp
  - rawspeed_test::setHelper
  - rawspeed_test::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
  - rawspeed_test::ColorFilterArrayShiftTest::SetUp
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
  - rawspeed_test::ColorFilterArrayTest::SetUp
  - rawspeed_test::setHelper
  - rawspeed_test::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
  - rawspeed_test::ColorFilterArrayShiftTest::SetUp
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::ColorFilterArrayTest::ColorFilterArrayTest
  - rawspeed_test::ColorFilterArrayTest::SetUp
  - rawspeed_test::setHelper
  - rawspeed_test::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ColorFilterArrayShiftTest::ColorFilterArrayShiftTest
  - rawspeed_test::ColorFilterArrayShiftTest::SetUp
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/common/ChecksumFileTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/common/CpuidTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator<<(::std::ostream& os, const iPoint2D p)'
  - '& operator<<(::std::ostream& os, const iPoint2D p)'
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::IdentityTest::IdentityTest
  - rawspeed_test::IdentityTest::CheckSegments
  - rawspeed_test::IdentityTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::lerp
  - rawspeed_test::calculateSteps
  - rawspeed_test::TEST
  - rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
  - rawspeed_test::CalculateStepsEdgesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CalculateStepsTest::CalculateStepsTest
  - rawspeed_test::CalculateStepsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ConstantTest::ConstantTest
  - rawspeed_test::ConstantTest::calculateEdges
  - rawspeed_test::ConstantTest::CheckSegments
  - rawspeed_test::ConstantTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - ~AbstractReferenceTest()
  - rawspeed_test::SinReferenceTest::calculateRefVal
  - ~SinReferenceTest() override
  - rawspeed_test::ReferenceTest::ReferenceTest
  - rawspeed_test::ReferenceTest::calculateReference
  - rawspeed_test::ReferenceTest::SetUp
  - rawspeed_test::ReferenceTest::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::IdentityTest::IdentityTest
  - rawspeed_test::IdentityTest::CheckSegments
  - rawspeed_test::IdentityTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::lerp
  - rawspeed_test::calculateSteps
  - rawspeed_test::TEST
  - rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
  - rawspeed_test::CalculateStepsEdgesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CalculateStepsTest::CalculateStepsTest
  - rawspeed_test::CalculateStepsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ConstantTest::ConstantTest
  - rawspeed_test::ConstantTest::calculateEdges
  - rawspeed_test::ConstantTest::CheckSegments
  - rawspeed_test::ConstantTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - ~AbstractReferenceTest()
  - rawspeed_test::SinReferenceTest::calculateRefVal
  - ~SinReferenceTest() override
  - rawspeed_test::ReferenceTest::ReferenceTest
  - rawspeed_test::ReferenceTest::calculateReference
  - rawspeed_test::ReferenceTest::SetUp
  - rawspeed_test::ReferenceTest::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::IdentityTest::IdentityTest
  - rawspeed_test::IdentityTest::CheckSegments
  - rawspeed_test::IdentityTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::lerp
  - rawspeed_test::calculateSteps
  - rawspeed_test::TEST
  - rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
  - rawspeed_test::CalculateStepsEdgesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CalculateStepsTest::CalculateStepsTest
  - rawspeed_test::CalculateStepsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ConstantTest::ConstantTest
  - rawspeed_test::ConstantTest::calculateEdges
  - rawspeed_test::ConstantTest::CheckSegments
  - rawspeed_test::ConstantTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - ~AbstractReferenceTest()
  - rawspeed_test::SinReferenceTest::calculateRefVal
  - ~SinReferenceTest() override
  - rawspeed_test::ReferenceTest::ReferenceTest
  - rawspeed_test::ReferenceTest::calculateReference
  - rawspeed_test::ReferenceTest::SetUp
  - rawspeed_test::ReferenceTest::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::IdentityTest::IdentityTest
  - rawspeed_test::IdentityTest::CheckSegments
  - rawspeed_test::IdentityTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::lerp
  - rawspeed_test::calculateSteps
  - rawspeed_test::TEST
  - rawspeed_test::CalculateStepsEdgesTest::CalculateStepsEdgesTest
  - rawspeed_test::CalculateStepsEdgesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::CalculateStepsTest::CalculateStepsTest
  - rawspeed_test::CalculateStepsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ConstantTest::ConstantTest
  - rawspeed_test::ConstantTest::calculateEdges
  - rawspeed_test::ConstantTest::CheckSegments
  - rawspeed_test::ConstantTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - ~AbstractReferenceTest()
  - rawspeed_test::SinReferenceTest::calculateRefVal
  - ~SinReferenceTest() override
  - rawspeed_test::ReferenceTest::ReferenceTest
  - rawspeed_test::ReferenceTest::calculateReference
  - rawspeed_test::ReferenceTest::SetUp
  - rawspeed_test::ReferenceTest::check
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/common/SplineTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::RoundDownTest::RoundDownTest
  - rawspeed_test::RoundDownTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundUpTest::RoundUpTest
  - rawspeed_test::RoundUpTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
  - rawspeed_test::roundUpDivisionSafeTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsAlignedTest::IsAlignedTest
  - rawspeed_test::IsAlignedTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsInTest::IsInTest
  - rawspeed_test::IsInTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TrimSpacesTest::TrimSpacesTest
  - rawspeed_test::TrimSpacesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::SplitStringTest::SplitStringTest
  - rawspeed_test::SplitStringTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::CopyPixelsTest::CopyPixelsTest
  - rawspeed_test::CopyPixelsTest::SetUp
  - rawspeed_test::CopyPixelsTest::copy
  - rawspeed_test::CopyPixelsTest::compare
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundDownTest::RoundDownTest
  - rawspeed_test::RoundDownTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundUpTest::RoundUpTest
  - rawspeed_test::RoundUpTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
  - rawspeed_test::roundUpDivisionSafeTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsAlignedTest::IsAlignedTest
  - rawspeed_test::IsAlignedTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsInTest::IsInTest
  - rawspeed_test::IsInTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TrimSpacesTest::TrimSpacesTest
  - rawspeed_test::TrimSpacesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::SplitStringTest::SplitStringTest
  - rawspeed_test::SplitStringTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::CopyPixelsTest::CopyPixelsTest
  - rawspeed_test::CopyPixelsTest::SetUp
  - rawspeed_test::CopyPixelsTest::copy
  - rawspeed_test::CopyPixelsTest::compare
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundDownTest::RoundDownTest
  - rawspeed_test::RoundDownTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundUpTest::RoundUpTest
  - rawspeed_test::RoundUpTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
  - rawspeed_test::roundUpDivisionSafeTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsAlignedTest::IsAlignedTest
  - rawspeed_test::IsAlignedTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsInTest::IsInTest
  - rawspeed_test::IsInTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TrimSpacesTest::TrimSpacesTest
  - rawspeed_test::TrimSpacesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::SplitStringTest::SplitStringTest
  - rawspeed_test::SplitStringTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::CopyPixelsTest::CopyPixelsTest
  - rawspeed_test::CopyPixelsTest::SetUp
  - rawspeed_test::CopyPixelsTest::copy
  - rawspeed_test::CopyPixelsTest::compare
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundDownTest::RoundDownTest
  - rawspeed_test::RoundDownTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::RoundUpTest::RoundUpTest
  - rawspeed_test::RoundUpTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::roundUpDivisionSafeTest::roundUpDivisionSafeTest
  - rawspeed_test::roundUpDivisionSafeTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsAlignedTest::IsAlignedTest
  - rawspeed_test::IsAlignedTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::IsInTest::IsInTest
  - rawspeed_test::IsInTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TrimSpacesTest::TrimSpacesTest
  - rawspeed_test::TrimSpacesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::SplitStringTest::SplitStringTest
  - rawspeed_test::SplitStringTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::CopyPixelsTest::CopyPixelsTest
  - rawspeed_test::CopyPixelsTest::SetUp
  - rawspeed_test::CopyPixelsTest::copy
  - rawspeed_test::CopyPixelsTest::compare
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/common/CommonTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator<<(::std::ostream& os, const BayerPhase p)'
  - '& operator<<(::std::ostream& os, const BayerPhase p)'
  - rawspeed_test::get_array_from_tuple
  - rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
  - rawspeed_test::BayerPhaseFromCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
  - rawspeed_test::BayerPhaseToCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
  - rawspeed_test::BayerPhaseShifTest::SetUp
  - '& operator<<(::std::ostream& os, const AbstractElement* e)'
  - rawspeed_test::TEST_P
  - '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
  - rawspeed_test::TEST_P
  - rawspeed_test::get_array_from_tuple
  - rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
  - rawspeed_test::BayerPhaseFromCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
  - rawspeed_test::BayerPhaseToCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
  - rawspeed_test::BayerPhaseShifTest::SetUp
  - '& operator<<(::std::ostream& os, const AbstractElement* e)'
  - rawspeed_test::TEST_P
  - '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
  - rawspeed_test::TEST_P
  - rawspeed_test::get_array_from_tuple
  - rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
  - rawspeed_test::BayerPhaseFromCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
  - rawspeed_test::BayerPhaseToCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
  - rawspeed_test::BayerPhaseShifTest::SetUp
  - '& operator<<(::std::ostream& os, const AbstractElement* e)'
  - rawspeed_test::TEST_P
  - '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
  - rawspeed_test::TEST_P
  - rawspeed_test::get_array_from_tuple
  - rawspeed_test::BayerPhaseFromCFATest::BayerPhaseFromCFATest
  - rawspeed_test::BayerPhaseFromCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseToCFATest::BayerPhaseToCFATest
  - rawspeed_test::BayerPhaseToCFATest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::BayerPhaseShifTest::BayerPhaseShifTest
  - rawspeed_test::BayerPhaseShifTest::SetUp
  - '& operator<<(::std::ostream& os, const AbstractElement* e)'
  - rawspeed_test::TEST_P
  - '& operator<<(::std::ostream& os, const AbstractColorElement* e)'
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: AbstractElement
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopLeftElement
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopRightElement
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomLeftElement
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomRightElement
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractColorElement
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: RedElement
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: FirstGreenElement
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: SecondGreenElement
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BlueElement
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractElement
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopLeftElement
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopRightElement
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomLeftElement
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomRightElement
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractColorElement
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: RedElement
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: FirstGreenElement
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: SecondGreenElement
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BlueElement
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractElement
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopLeftElement
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopRightElement
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomLeftElement
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomRightElement
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractColorElement
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: RedElement
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: FirstGreenElement
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: SecondGreenElement
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BlueElement
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractElement
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopLeftElement
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: TopRightElement
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomLeftElement
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BottomRightElement
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: AbstractColorElement
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: RedElement
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: FirstGreenElement
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: SecondGreenElement
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    - fields: []
      item_type: struct
      name: BlueElement
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/librawspeed/test/librawspeed/common/BayerPhaseTest.cpp
    typedefs: []
    union: []
- function_names:
  - '& operator<<(::std::ostream& os, const iPoint2D p)'
  - '& operator<<(::std::ostream& os, const iPoint2D p)'
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PointTest::PointTest
  - rawspeed_test::PointTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
  - rawspeed_test::HasPositiveAreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::AreaTest::AreaTest
  - rawspeed_test::AreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::OperatorsTest::OperatorsTest
  - rawspeed_test::OperatorsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PointTest::PointTest
  - rawspeed_test::PointTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
  - rawspeed_test::HasPositiveAreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::AreaTest::AreaTest
  - rawspeed_test::AreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::OperatorsTest::OperatorsTest
  - rawspeed_test::OperatorsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PointTest::PointTest
  - rawspeed_test::PointTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
  - rawspeed_test::HasPositiveAreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::AreaTest::AreaTest
  - rawspeed_test::AreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::OperatorsTest::OperatorsTest
  - rawspeed_test::OperatorsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PointTest::PointTest
  - rawspeed_test::PointTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::HasPositiveAreaTest::HasPositiveAreaTest
  - rawspeed_test::HasPositiveAreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::AreaTest::AreaTest
  - rawspeed_test::AreaTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::OperatorsTest::OperatorsTest
  - rawspeed_test::OperatorsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/adt/PointTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator==(const rawspeed::Array1DRef<T> a,\n                       const rawspeed::Array1DRef<T>
    b)"
  - '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
  - "operator==(const rawspeed::Array1DRef<T> a,\n                       const rawspeed::Array1DRef<T>
    b)"
  - '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
  - rawpeed_test::TEST
  - rawpeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
  - rawspeed_test::PowerOfTwoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::ClampBitsTest::ClampBitsTest
  - rawspeed_test::ClampBitsTest::SetUp
  - MIN
  - MAX
  - ROW
  - ROWS
  - THREEROWS
  - MOREROWS
  - GENERATE
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
  - rawspeed_test::PowerOfTwoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::ClampBitsTest::ClampBitsTest
  - rawspeed_test::ClampBitsTest::SetUp
  - MIN
  - MAX
  - ROW
  - ROWS
  - THREEROWS
  - MOREROWS
  - GENERATE
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
  - rawspeed_test::PowerOfTwoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::ClampBitsTest::ClampBitsTest
  - rawspeed_test::ClampBitsTest::SetUp
  - MIN
  - MAX
  - ROW
  - ROWS
  - THREEROWS
  - MOREROWS
  - GENERATE
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::PowerOfTwoTest::PowerOfTwoTest
  - rawspeed_test::PowerOfTwoTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::ClampBitsTest::ClampBitsTest
  - rawspeed_test::ClampBitsTest::SetUp
  - MIN
  - MAX
  - ROW
  - ROWS
  - THREEROWS
  - MOREROWS
  - GENERATE
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/adt/BitTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::rawpeed_test::getInput
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::getInput
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::getInput
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::getInput
  - rawspeed::rawpeed_test::TYPED_TEST_P
  source_file: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/librawspeed/test/librawspeed/adt/PartitioningOutputIteratorTest.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/adt/RangeTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator<<(::std::ostream& os, const Range<T>& r)'
  - '& operator<<(::std::ostream& os, const Range<T>& r)'
  - rawspeed_test::RangeContains
  - rawspeed_test::RangeDoesntContain
  - rawspeed_test::RangesOverlap
  - rawspeed_test::RangesDontOverlap
  - rawspeed_test::TwoRangesTest::TwoRangesTest
  - rawspeed_test::TwoRangesTest::SetUp
  - rawspeed_test::RangeContains
  - rawspeed_test::RangeDoesntContain
  - rawspeed_test::RangesOverlap
  - rawspeed_test::RangesDontOverlap
  - rawspeed_test::TwoRangesTest::TwoRangesTest
  - rawspeed_test::TwoRangesTest::SetUp
  - rawspeed_test::RangeContains
  - rawspeed_test::RangeDoesntContain
  - rawspeed_test::RangesOverlap
  - rawspeed_test::RangesDontOverlap
  - rawspeed_test::TwoRangesTest::TwoRangesTest
  - rawspeed_test::TwoRangesTest::SetUp
  - rawspeed_test::RangeContains
  - rawspeed_test::RangeDoesntContain
  - rawspeed_test::RangesOverlap
  - rawspeed_test::RangesDontOverlap
  - rawspeed_test::TwoRangesTest::TwoRangesTest
  - rawspeed_test::TwoRangesTest::SetUp
  source_file: /src/librawspeed/test/librawspeed/adt/RangeTest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ThreeRangesTest::ThreeRangesTest
  - rawspeed_test::ThreeRangesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ThreeRangesTest::ThreeRangesTest
  - rawspeed_test::ThreeRangesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ThreeRangesTest::ThreeRangesTest
  - rawspeed_test::ThreeRangesTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST_P
  - rawspeed_test::ThreeRangesTest::ThreeRangesTest
  - rawspeed_test::ThreeRangesTest::SetUp
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/adt/NORangesSetTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator==(const Array1DRef<T> a, const Array1DRef<T> b)
  - '& operator<<(::std::ostream& os, const T& b)'
  - '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - operator==(const Array1DRef<T> a, const Array1DRef<T> b)
  - '& operator<<(::std::ostream& os, const T& b)'
  - '& operator<<(::std::ostream& os, const Array1DRef<T>& r)'
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  - rawspeed::rawpeed_test::coalesceElts
  - rawspeed::rawpeed_test::TYPED_TEST_P
  source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    - fields: []
      item_type: struct
      name: TypeSpec
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/librawspeed/test/librawspeed/adt/CoalescingOutputIteratorTest.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB16, InvOnesTag>::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
  - rawspeed::BitVacuumerMSB16Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
  - rawspeed::BitVacuumerMSB16Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
  - rawspeed::BitVacuumerMSB16Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB16Test::BitVacuumerMSB16Test
  - rawspeed::BitVacuumerMSB16Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::BitStreamerTest::runTest
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::BitStreamerTest::runTest
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::BitStreamerTest::runTest
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::Test
  - rawspeed_test::BitStreamerTest::runTest
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::TYPED_TEST_P
  - rawspeed_test::element
  - rawspeed_test::data
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::element
  - rawspeed_test::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsTag>
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsNoFillTag>
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsTag>
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsNoFillTag>
      pos:
        line_end: 94
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthTag>
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthNoFillTag>
      pos:
        line_end: 124
        line_start: 113
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: Pattern
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, ZerosTag>
      pos:
        line_end: 181
        line_start: 177
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, OnesTag>
      pos:
        line_end: 191
        line_start: 187
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, InvOnesTag>
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, SaturatedTag>
      pos:
        line_end: 207
        line_start: 203
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: PumpAndPattern
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsTag>
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsNoFillTag>
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsTag>
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsNoFillTag>
      pos:
        line_end: 94
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthTag>
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthNoFillTag>
      pos:
        line_end: 124
        line_start: 113
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: Pattern
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, ZerosTag>
      pos:
        line_end: 181
        line_start: 177
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, OnesTag>
      pos:
        line_end: 191
        line_start: 187
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, InvOnesTag>
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, SaturatedTag>
      pos:
        line_end: 207
        line_start: 203
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: PumpAndPattern
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsTag>
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsNoFillTag>
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsTag>
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsNoFillTag>
      pos:
        line_end: 94
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthTag>
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthNoFillTag>
      pos:
        line_end: 124
        line_start: 113
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: Pattern
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, ZerosTag>
      pos:
        line_end: 181
        line_start: 177
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, OnesTag>
      pos:
        line_end: 191
        line_start: 187
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, InvOnesTag>
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, SaturatedTag>
      pos:
        line_end: 207
        line_start: 203
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: PumpAndPattern
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsTag>
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestGetBitsNoFillTag>
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsTag>
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestPeekBitsNoFillTag>
      pos:
        line_end: 94
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthTag>
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: BitStreamerPatternTest<T, TestIncreasingPeekLengthNoFillTag>
      pos:
        line_end: 124
        line_start: 113
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: Pattern
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, ZerosTag>
      pos:
        line_end: 181
        line_start: 177
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, OnesTag>
      pos:
        line_end: 191
        line_start: 187
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      - name: data(int len)
        type: uint32_t
      item_type: struct
      name: Pattern<Pump, InvOnesTag>
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields:
      - name: Data
        type: std::array<uint8_t, 8>
      item_type: struct
      name: Pattern<Pump, SaturatedTag>
      pos:
        line_end: 207
        line_start: 203
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    - fields: []
      item_type: struct
      name: PumpAndPattern
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerTest.h
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB, InvOnesTag>::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerLSB, InvOnesTag>::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerMSB32, InvOnesTag>::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, OnesTag>::data
  - rawspeed_test::Pattern<BitStreamerJPEG, InvOnesTag>::data
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
  - rawspeed::BitVacuumerLSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
  - rawspeed::BitVacuumerLSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
  - rawspeed::BitVacuumerLSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerLSBTest::BitVacuumerLSBTest
  - rawspeed::BitVacuumerLSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
  - rawspeed::BitVacuumerMSB32Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
  - rawspeed::BitVacuumerMSB32Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
  - rawspeed::BitVacuumerMSB32Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSB32Test::BitVacuumerMSB32Test
  - rawspeed::BitVacuumerMSB32Test::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
  - rawspeed::BitVacuumerMSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
  - rawspeed::BitVacuumerMSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
  - rawspeed::BitVacuumerMSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::BitVacuumerMSBTest::BitVacuumerMSBTest
  - rawspeed::BitVacuumerMSBTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::TEST
  - rawspeed::TEST
  - rawspeed::TEST
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
  - rawspeed::BitVacuumerJPEGTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
  - rawspeed::BitVacuumerJPEGTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
  - rawspeed::BitVacuumerJPEGTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  - rawspeed::BitVacuumerJPEGTest::BitVacuumerJPEGTest
  - rawspeed::BitVacuumerJPEGTest::SetUp
  - rawspeed::synthesizeBitstream
  - rawspeed::TEST_P
  - rawspeed::TEST_P
  source_file: /src/librawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  source_file: /src/librawspeed/test/librawspeed/codes/HuffmanTableTest.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
    HuffmanCode<BaselineCodeTag>& rhs)"
  - "&\noperator<<(::std::ostream& os,\n           const HuffmanCode<BaselineCodeTag>::CodeSymbol
    s)"
  - "operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n                       const
    HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
  - "operator!=(const HuffmanCode<BaselineCodeTag>& lhs,\n                       const
    HuffmanCode<BaselineCodeTag>& rhs)"
  - "&\noperator<<(::std::ostream& os,\n           const HuffmanCode<BaselineCodeTag>::CodeSymbol
    s)"
  - "operator!=(const HuffmanCode<BaselineCodeTag>::CodeSymbol& lhs,\n                       const
    HuffmanCode<BaselineCodeTag>::CodeSymbol& rhs)"
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
  - rawspeed_test::CodeSymbolDeathTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
  - rawspeed_test::CodeSymbolPrintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
  - rawspeed_test::GenerateAllPossibleCodeSymbols
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::SignExtendTest::SignExtendTest
  - rawspeed_test::SignExtendTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
  - rawspeed_test::generateCodeSymbolsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
  - rawspeed_test::CodeSymbolDeathTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
  - rawspeed_test::CodeSymbolPrintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
  - rawspeed_test::GenerateAllPossibleCodeSymbols
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::SignExtendTest::SignExtendTest
  - rawspeed_test::SignExtendTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
  - rawspeed_test::generateCodeSymbolsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
  - rawspeed_test::CodeSymbolDeathTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
  - rawspeed_test::CodeSymbolPrintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
  - rawspeed_test::GenerateAllPossibleCodeSymbols
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::SignExtendTest::SignExtendTest
  - rawspeed_test::SignExtendTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
  - rawspeed_test::generateCodeSymbolsTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::CodeSymbolDeathTest::CodeSymbolDeathTest
  - rawspeed_test::CodeSymbolDeathTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolPrintTest::CodeSymbolPrintTest
  - rawspeed_test::CodeSymbolPrintTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::CodeSymbolHaveCommonPrefixTest
  - rawspeed_test::CodeSymbolHaveCommonPrefixTest::SetUp
  - rawspeed_test::GenerateAllPossibleCodeSymbols
  - rawspeed_test::TEST_P
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::TEST
  - rawspeed_test::SignExtendTest::SignExtendTest
  - rawspeed_test::SignExtendTest::SetUp
  - rawspeed_test::TEST_P
  - rawspeed_test::generateCodeSymbolsTest::generateCodeSymbolsTest
  - rawspeed_test::generateCodeSymbolsTest::SetUp
  - rawspeed_test::TEST_P
  source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: s
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
      type_or_value: HuffmanCode<BaselineCodeTag>::CodeSymbol
    - item_type: preproc_def
      name: s
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
      type_or_value: HuffmanCode<BaselineCodeTag>::CodeSymbol
    - item_type: preproc_def
      name: s
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
      type_or_value: HuffmanCode<BaselineCodeTag>::CodeSymbol
    - item_type: preproc_def
      name: s
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/librawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp
      type_or_value: HuffmanCode<BaselineCodeTag>::CodeSymbol
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/RawSpeed-API.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowFIE
  - ThrowFIE
  source_file: /src/librawspeed/src/librawspeed/io/FileIOException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getHostEndiannessRuntime
  - rawspeed::getHostEndianness
  - BSWAP16
  - BSWAP32
  - BSWAP64
  - BSWAP16
  - BSWAP32
  - BSWAP64
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getBE
  - rawspeed::getLE
  - rawspeed::getU16BE
  - rawspeed::getU16LE
  - rawspeed::getU32BE
  - rawspeed::getU32LE
  - rawspeed::getHostEndiannessRuntime
  - rawspeed::getHostEndianness
  - BSWAP16
  - BSWAP32
  - BSWAP64
  - BSWAP16
  - BSWAP32
  - BSWAP64
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getByteSwapped
  - rawspeed::getBE
  - rawspeed::getLE
  - rawspeed::getU16BE
  - rawspeed::getU16LE
  - rawspeed::getU32BE
  - rawspeed::getU32LE
  source_file: /src/librawspeed/src/librawspeed/io/Endianness.h
  types:
    enum:
    - enumerators:
      - name: little
        value: '0xDEAD'
      - name: big
        value: '0xBEEF'
      - name: unknown
        value: '0x0BAD'
      item_type: enum
      name: Endianness
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/io/Endianness.h
    - enumerators:
      - name: little
        value: '0xDEAD'
      - name: big
        value: '0xBEEF'
      - name: unknown
        value: '0x0BAD'
      item_type: enum
      name: Endianness
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/io/Endianness.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::widenFileName
  - rawspeed::widenFileName
  source_file: /src/librawspeed/src/librawspeed/io/FileIO.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FileWriter::Filename
  - rawspeed::FileWriter::Filename
  source_file: /src/librawspeed/src/librawspeed/io/FileWriter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FileIOException::anchor
  - rawspeed::FileIOException::anchor
  source_file: /src/librawspeed/src/librawspeed/io/FileIOException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/io/MMapReader.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FileWriter::FileWriter
  - rawspeed::FileWriter::writeFile
  - rawspeed::FileWriter::FileWriter
  - rawspeed::FileWriter::writeFile
  source_file: /src/librawspeed/src/librawspeed/io/FileWriter.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::IOException::anchor
  - rawspeed::IOException::anchor
  source_file: /src/librawspeed/src/librawspeed/io/IOException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::getAsArray1DRef
  - operator Array1DRef<const uint8_t>() const
  - rawspeed::Buffer::getSubView
  - rawspeed::Buffer::getSubView
  - operator[](size_type offset) const
  - rawspeed::Buffer::begin
  - rawspeed::Buffer::end
  - rawspeed::Buffer::get
  - rawspeed::Buffer::getSize
  - rawspeed::Buffer::isValid
  - operator<(Buffer lhs, Buffer rhs)
  - rawspeed::DataBuffer::DataBuffer
  - rawspeed::DataBuffer::DataBuffer
  - rawspeed::DataBuffer::get
  - rawspeed::DataBuffer::getByteOrder
  - rawspeed::DataBuffer::setByteOrder
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::Buffer
  - rawspeed::Buffer::getAsArray1DRef
  - operator Array1DRef<const uint8_t>() const
  - rawspeed::Buffer::getSubView
  - rawspeed::Buffer::getSubView
  - operator[](size_type offset) const
  - rawspeed::Buffer::begin
  - rawspeed::Buffer::end
  - rawspeed::Buffer::get
  - rawspeed::Buffer::getSize
  - rawspeed::Buffer::isValid
  - operator<(Buffer lhs, Buffer rhs)
  - rawspeed::DataBuffer::DataBuffer
  - rawspeed::DataBuffer::DataBuffer
  - rawspeed::DataBuffer::get
  - rawspeed::DataBuffer::getByteOrder
  - rawspeed::DataBuffer::setByteOrder
  source_file: /src/librawspeed/src/librawspeed/io/Buffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowIOE
  - ThrowIOE
  source_file: /src/librawspeed/src/librawspeed/io/IOException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ByteStream::ByteStream
  - rawspeed::ByteStream::ByteStream
  - rawspeed::ByteStream::getSubStream
  - rawspeed::ByteStream::getSubStream
  - rawspeed::ByteStream::check
  - rawspeed::ByteStream::check
  - rawspeed::ByteStream::getPosition
  - rawspeed::ByteStream::setPosition
  - rawspeed::ByteStream::getRemainSize
  - rawspeed::ByteStream::peekData
  - rawspeed::ByteStream::getData
  - rawspeed::ByteStream::peekBuffer
  - rawspeed::ByteStream::getBuffer
  - rawspeed::ByteStream::peekRemainingBuffer
  - rawspeed::ByteStream::peekStream
  - rawspeed::ByteStream::peekStream
  - rawspeed::ByteStream::getStream
  - rawspeed::ByteStream::getStream
  - rawspeed::ByteStream::skipBytes
  - rawspeed::ByteStream::skipBytes
  - rawspeed::ByteStream::hasPatternAt
  - rawspeed::ByteStream::hasPrefix
  - rawspeed::ByteStream::skipPrefix
  - rawspeed::ByteStream::peek
  - rawspeed::ByteStream::get
  - rawspeed::ByteStream::getArray
  - rawspeed::ByteStream::getVector
  - rawspeed::ByteStream::peekByte
  - rawspeed::ByteStream::getByte
  - rawspeed::ByteStream::peekU16
  - rawspeed::ByteStream::peekU32
  - rawspeed::ByteStream::getU16
  - rawspeed::ByteStream::getI32
  - rawspeed::ByteStream::getU32
  - rawspeed::ByteStream::getFloat
  - rawspeed::ByteStream::peekString
  - rawspeed::ByteStream::getString
  - rawspeed::ByteStream::ByteStream
  - rawspeed::ByteStream::ByteStream
  - rawspeed::ByteStream::getSubStream
  - rawspeed::ByteStream::getSubStream
  - rawspeed::ByteStream::check
  - rawspeed::ByteStream::check
  - rawspeed::ByteStream::getPosition
  - rawspeed::ByteStream::setPosition
  - rawspeed::ByteStream::getRemainSize
  - rawspeed::ByteStream::peekData
  - rawspeed::ByteStream::getData
  - rawspeed::ByteStream::peekBuffer
  - rawspeed::ByteStream::getBuffer
  - rawspeed::ByteStream::peekRemainingBuffer
  - rawspeed::ByteStream::peekStream
  - rawspeed::ByteStream::peekStream
  - rawspeed::ByteStream::getStream
  - rawspeed::ByteStream::getStream
  - rawspeed::ByteStream::skipBytes
  - rawspeed::ByteStream::skipBytes
  - rawspeed::ByteStream::hasPatternAt
  - rawspeed::ByteStream::hasPrefix
  - rawspeed::ByteStream::skipPrefix
  - rawspeed::ByteStream::peek
  - rawspeed::ByteStream::get
  - rawspeed::ByteStream::getArray
  - rawspeed::ByteStream::getVector
  - rawspeed::ByteStream::peekByte
  - rawspeed::ByteStream::getByte
  - rawspeed::ByteStream::peekU16
  - rawspeed::ByteStream::peekU32
  - rawspeed::ByteStream::getU16
  - rawspeed::ByteStream::getI32
  - rawspeed::ByteStream::getU32
  - rawspeed::ByteStream::getFloat
  - rawspeed::ByteStream::peekString
  - rawspeed::ByteStream::getString
  source_file: /src/librawspeed/src/librawspeed/io/ByteStream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FileReader::FileReader
  - rawspeed::FileReader::FileReader
  source_file: /src/librawspeed/src/librawspeed/io/FileReader.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FileReader::readFile
  - rawspeed::FileReader::readFile
  source_file: /src/librawspeed/src/librawspeed/io/FileReader.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MMapReader::MMapReader
  - rawspeed::MMapReader::getAsBuffer
  - MMapReader::~MMapReader()
  - rawspeed::MMapReader::MMapReader
  - rawspeed::MMapReader::getAsBuffer
  - MMapReader::~MMapReader()
  source_file: /src/librawspeed/src/librawspeed/io/MMapReader.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowCPE
  - ThrowCPE
  source_file: /src/librawspeed/src/librawspeed/parsers/CiffParserException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawParserException::anchor
  - rawspeed::RawParserException::anchor
  source_file: /src/librawspeed/src/librawspeed/parsers/RawParserException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiffParserException::anchor
  - rawspeed::TiffParserException::anchor
  source_file: /src/librawspeed/src/librawspeed/parsers/TiffParserException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FiffParser::FiffParser
  - rawspeed::FiffParser::parseData
  - rawspeed::FiffParser::getDecoder
  - rawspeed::FiffParser::FiffParser
  - rawspeed::FiffParser::parseData
  - rawspeed::FiffParser::getDecoder
  source_file: /src/librawspeed/src/librawspeed/parsers/FiffParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawParser::getDecoder
  - rawspeed::RawParser::getDecoder
  source_file: /src/librawspeed/src/librawspeed/parsers/RawParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowTPE
  - ThrowTPE
  source_file: /src/librawspeed/src/librawspeed/parsers/TiffParserException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowFPE
  - ThrowFPE
  source_file: /src/librawspeed/src/librawspeed/parsers/FiffParserException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowRPE
  - ThrowRPE
  source_file: /src/librawspeed/src/librawspeed/parsers/RawParserException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawParser::RawParser
  - ~RawParser()
  - rawspeed::RawParser::RawParser
  - ~RawParser()
  source_file: /src/librawspeed/src/librawspeed/parsers/RawParser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiffParser::TiffParser
  - rawspeed::TiffParser::getDecoder
  - rawspeed::TiffParser::parse
  - rawspeed::TiffParser::makeDecoder
  - rawspeed::TiffParser::constructor
  - DECODER
  - rawspeed::TiffParser::TiffParser
  - rawspeed::TiffParser::getDecoder
  - rawspeed::TiffParser::parse
  - rawspeed::TiffParser::makeDecoder
  - rawspeed::TiffParser::constructor
  - DECODER
  source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CiffParserException::anchor
  - rawspeed::CiffParserException::anchor
  source_file: /src/librawspeed/src/librawspeed/parsers/CiffParserException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/parsers/FiffParser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/parsers/CiffParser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/parsers/TiffParser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CiffParser::CiffParser
  - rawspeed::CiffParser::parseData
  - rawspeed::CiffParser::getDecoder
  - rawspeed::CiffParser::CiffParser
  - rawspeed::CiffParser::parseData
  - rawspeed::CiffParser::getDecoder
  source_file: /src/librawspeed/src/librawspeed/parsers/CiffParser.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FiffParserException::anchor
  - rawspeed::FiffParserException::anchor
  source_file: /src/librawspeed/src/librawspeed/parsers/FiffParserException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowCME
  - ThrowCME
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ColorFilterArray::ColorFilterArray
  - rawspeed::ColorFilterArray::getSize
  - rawspeed::ColorFilterArray::ColorFilterArray
  - rawspeed::ColorFilterArray::getSize
  source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
  types:
    enum:
    - enumerators:
      - name: RED
        value: '0'
      - name: MAGENTA
        value: '4'
      - name: BLUE
        value: '2'
      - name: GREEN
        value: '1'
      - name: CYAN
        value: '3'
      - name: YELLOW
        value: '5'
      - name: WHITE
        value: '6'
      - name: FUJI_GREEN
        value: '7'
      - name: END
      - name: UNKNOWN
        value: '255'
      item_type: enum
      name: CFAColor
      pos:
        line_end: 43
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    - enumerators:
      - name: RED
        value: '0'
      - name: MAGENTA
        value: '4'
      - name: BLUE
        value: '2'
      - name: GREEN
        value: '1'
      - name: CYAN
        value: '3'
      - name: YELLOW
        value: '5'
      - name: WHITE
        value: '6'
      - name: FUJI_GREEN
        value: '7'
      - name: END
      - name: UNKNOWN
        value: '255'
      item_type: enum
      name: CFAColor
      pos:
        line_end: 43
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Camera::Camera
  - rawspeed::Camera::Camera
  - rawspeed::name
  - rawspeed::getAsCFAColor
  - rawspeed::getAsCFAColor
  - rawspeed::name
  - rawspeed::getAsCFAColor
  - rawspeed::getAsCFAColor
  - rawspeed::Camera::parseColorRow
  - rawspeed::Camera::parseColor
  - rawspeed::Camera::parseCFA
  - rawspeed::Camera::parseCrop
  - rawspeed::Camera::parseBlackAreas
  - rawspeed::Camera::parseAliases
  - rawspeed::Camera::parseHints
  - rawspeed::Camera::parseID
  - rawspeed::Camera::parseSensor
  - rawspeed::Camera::parseColorMatrix
  - rawspeed::Camera::parseColorMatrices
  - rawspeed::Camera::parseCameraChild
  - rawspeed::Camera::getSensorInfo
  - rawspeed::Camera::Camera
  - rawspeed::Camera::Camera
  - rawspeed::name
  - rawspeed::getAsCFAColor
  - rawspeed::getAsCFAColor
  - rawspeed::name
  - rawspeed::getAsCFAColor
  - rawspeed::getAsCFAColor
  - rawspeed::Camera::parseColorRow
  - rawspeed::Camera::parseColor
  - rawspeed::Camera::parseCFA
  - rawspeed::Camera::parseCrop
  - rawspeed::Camera::parseBlackAreas
  - rawspeed::Camera::parseAliases
  - rawspeed::Camera::parseHints
  - rawspeed::Camera::parseID
  - rawspeed::Camera::parseSensor
  - rawspeed::Camera::parseColorMatrix
  - rawspeed::Camera::parseColorMatrices
  - rawspeed::Camera::parseCameraChild
  - rawspeed::Camera::getSensorInfo
  source_file: /src/librawspeed/src/librawspeed/metadata/Camera.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Hints::add
  - rawspeed::Hints::contains
  - rawspeed::Hints::get
  - rawspeed::Hints::get
  - rawspeed::Hints::add
  - rawspeed::Hints::contains
  - rawspeed::Hints::get
  - rawspeed::Hints::get
  source_file: /src/librawspeed/src/librawspeed/metadata/Camera.h
  types:
    enum:
    - enumerators:
      - name: SupportedNoSamples
      - name: UnknownCamera
      - name: Unknown
      - name: Supported
      - name: UnknownNoSamples
      - name: Unsupported
      item_type: enum
      name: SupportStatus
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/metadata/Camera.h
    - enumerators:
      - name: SupportedNoSamples
      - name: UnknownCamera
      - name: Unknown
      - name: Supported
      - name: UnknownNoSamples
      - name: Unsupported
      item_type: enum
      name: SupportStatus
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/librawspeed/src/librawspeed/metadata/Camera.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ColorFilterArray::ColorFilterArray
  - rawspeed::ColorFilterArray::setSize
  - rawspeed::ColorFilterArray::getColorAt
  - rawspeed::ColorFilterArray::setCFA
  - rawspeed::ColorFilterArray::shiftRight
  - rawspeed::ColorFilterArray::shiftDown
  - rawspeed::ColorFilterArray::asString
  - rawspeed::ColorFilterArray::shiftDcrawFilter
  - rawspeed::getColorAsString
  - rawspeed::getColorAsString
  - rawspeed::ColorFilterArray::colorToString
  - rawspeed::ColorFilterArray::setColorAt
  - rawspeed::toDcrawColor
  - rawspeed::toDcrawColor
  - rawspeed::ColorFilterArray::getDcrawFilter
  - rawspeed::ColorFilterArray::ColorFilterArray
  - rawspeed::ColorFilterArray::setSize
  - rawspeed::ColorFilterArray::getColorAt
  - rawspeed::ColorFilterArray::setCFA
  - rawspeed::ColorFilterArray::shiftRight
  - rawspeed::ColorFilterArray::shiftDown
  - rawspeed::ColorFilterArray::asString
  - rawspeed::ColorFilterArray::shiftDcrawFilter
  - rawspeed::getColorAsString
  - rawspeed::getColorAsString
  - rawspeed::ColorFilterArray::colorToString
  - rawspeed::ColorFilterArray::setColorAt
  - rawspeed::toDcrawColor
  - rawspeed::toDcrawColor
  - rawspeed::ColorFilterArray::getDcrawFilter
  source_file: /src/librawspeed/src/librawspeed/metadata/ColorFilterArray.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BlackArea::BlackArea
  - rawspeed::BlackArea::BlackArea
  source_file: /src/librawspeed/src/librawspeed/metadata/BlackArea.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CameraMetaData::CameraMetaData
  - rawspeed::getId
  - rawspeed::getId
  - rawspeed::CameraMetaData::getCamera
  - rawspeed::CameraMetaData::getCamera
  - rawspeed::CameraMetaData::hasCamera
  - '* RAWSPEED_READONLY

    CameraMetaData::getChdkCamera(uint32_t filesize) const'
  - RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize) const
  - rawspeed::CameraMetaData::addCamera
  - rawspeed::CameraMetaData::disableMake
  - rawspeed::CameraMetaData::disableCamera
  - rawspeed::CameraMetaData::CameraMetaData
  - rawspeed::getId
  - rawspeed::getId
  - rawspeed::CameraMetaData::getCamera
  - rawspeed::CameraMetaData::getCamera
  - rawspeed::CameraMetaData::hasCamera
  - '* RAWSPEED_READONLY

    CameraMetaData::getChdkCamera(uint32_t filesize) const'
  - RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize) const
  - rawspeed::CameraMetaData::addCamera
  - rawspeed::CameraMetaData::disableMake
  - rawspeed::CameraMetaData::disableCamera
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CameraSensorInfo::CameraSensorInfo
  - RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
  - RAWSPEED_READONLY CameraSensorInfo::isDefault() const
  - rawspeed::CameraSensorInfo::CameraSensorInfo
  - RAWSPEED_READONLY CameraSensorInfo::isIsoWithin(int iso) const
  - RAWSPEED_READONLY CameraSensorInfo::isDefault() const
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator<(const CameraId& rhs) const
  - rawspeed::CameraMetaData::CameraMetaData
  - operator<(const CameraId& rhs) const
  - rawspeed::CameraMetaData::CameraMetaData
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: make
        type: std::string
      - name: model
        type: std::string
      - name: mode
        type: std::string
      item_type: struct
      name: CameraId
      pos:
        line_end: 43
        line_start: 34
        source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    - fields:
      - name: make
        type: std::string
      - name: model
        type: std::string
      - name: mode
        type: std::string
      item_type: struct
      name: CameraId
      pos:
        line_end: 43
        line_start: 34
        source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetaData.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::CameraMetadataException::anchor
  - rawspeed::CameraMetadataException::anchor
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraMetadataException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/metadata/CameraSensorInfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/common/CpuFeatures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::copyPixelsImpl
  - rawspeed::copyPixelsImpl
  - rawspeed::copyPixels
  - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
  - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
  - rawspeed::RAWSPEED_READNONE::roundToMultiple
  - rawspeed::RAWSPEED_READNONE::roundDown
  - rawspeed::RAWSPEED_READNONE::roundUp
  - rawspeed::RAWSPEED_READNONE::roundUpDivision
  - rawspeed::RAWSPEED_READNONE::roundUpDivisionSafe
  - rawspeed::isAligned
  - rawspeed::RAWSPEED_READONLY::isIn
  - rawspeed::trimSpaces
  - rawspeed::splitString
  - rawspeed::to_array
  - rawspeed::copyPixelsImpl
  - rawspeed::copyPixelsImpl
  - rawspeed::copyPixels
  - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
  - rawspeed::RAWSPEED_READNONE::getMisalignmentOffset
  - rawspeed::RAWSPEED_READNONE::roundToMultiple
  - rawspeed::RAWSPEED_READNONE::roundDown
  - rawspeed::RAWSPEED_READNONE::roundUp
  - rawspeed::RAWSPEED_READNONE::roundUpDivision
  - rawspeed::RAWSPEED_READNONE::roundUpDivisionSafe
  - rawspeed::isAligned
  - rawspeed::RAWSPEED_READONLY::isIn
  - rawspeed::trimSpaces
  - rawspeed::splitString
  - rawspeed::to_array
  source_file: /src/librawspeed/src/librawspeed/common/Common.h
  types:
    enum:
    - enumerators:
      - name: ERROR
        value: '0x10'
      - name: EXTRA
        value: '0x10000'
      - name: INFO
        value: '0x1000'
      - name: WARNING
        value: '0x100'
      item_type: enum
      name: DEBUG_PRIO
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/common/Common.h
    - enumerators:
      - name: ERROR
        value: '0x10'
      - name: EXTRA
        value: '0x10000'
      - name: INFO
        value: '0x1000'
      - name: WARNING
        value: '0x100'
      item_type: enum
      name: DEBUG_PRIO
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/common/Common.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cpuid::SSE2
  - rawspeed::Cpuid::SSE2
  - rawspeed::Cpuid::SSE2
  - rawspeed::Cpuid::SSE2
  source_file: /src/librawspeed/src/librawspeed/common/CpuFeatures.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::extendBinaryFloatingPoint
  - rawspeed::fp16ToFloat
  - rawspeed::fp24ToFloat
  - rawspeed::extendBinaryFloatingPoint
  - rawspeed::fp16ToFloat
  - rawspeed::fp24ToFloat
  source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: StorageWidth
        type: uint32_t
      - name: FractionWidth
        type: uint32_t
      - name: ExponentWidth
        type: uint32_t
      - name: Precision
        type: uint32_t
      - name: ExponentMax
        type: uint32_t
      - name: Bias
        type: int32_t
      - name: ExponentPos
        type: uint32_t
      - name: SignBitPos
        type: uint32_t
      item_type: struct
      name: BinaryN
      pos:
        line_end: 55
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary16
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary24
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary32
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields:
      - name: StorageWidth
        type: uint32_t
      - name: FractionWidth
        type: uint32_t
      - name: ExponentWidth
        type: uint32_t
      - name: Precision
        type: uint32_t
      - name: ExponentMax
        type: uint32_t
      - name: Bias
        type: int32_t
      - name: ExponentPos
        type: uint32_t
      - name: SignBitPos
        type: uint32_t
      item_type: struct
      name: BinaryN
      pos:
        line_end: 55
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary16
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary24
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary32
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields:
      - name: StorageWidth
        type: uint32_t
      - name: FractionWidth
        type: uint32_t
      - name: ExponentWidth
        type: uint32_t
      - name: Precision
        type: uint32_t
      - name: ExponentMax
        type: uint32_t
      - name: Bias
        type: int32_t
      - name: ExponentPos
        type: uint32_t
      - name: SignBitPos
        type: uint32_t
      item_type: struct
      name: BinaryN
      pos:
        line_end: 55
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary16
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary24
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary32
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields:
      - name: StorageWidth
        type: uint32_t
      - name: FractionWidth
        type: uint32_t
      - name: ExponentWidth
        type: uint32_t
      - name: Precision
        type: uint32_t
      - name: ExponentMax
        type: uint32_t
      - name: Bias
        type: int32_t
      - name: ExponentPos
        type: uint32_t
      - name: SignBitPos
        type: uint32_t
      item_type: struct
      name: BinaryN
      pos:
        line_end: 55
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary16
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary24
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    - fields: []
      item_type: struct
      name: Binary32
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/librawspeed/src/librawspeed/common/FloatingPoint.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawspeedException::anchor
  - rawspeed::RawspeedException::anchor
  source_file: /src/librawspeed/src/librawspeed/common/RawspeedException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ThrowException
  - rawspeed::RawspeedException::log
  - rawspeed::RawspeedException::RawspeedException
  - XSTR
  - STR
  - ThrowExceptionHelper
  - ThrowExceptionHelper
  - ThrowRSE
  - rawspeed::ThrowException
  - rawspeed::RawspeedException::log
  - rawspeed::RawspeedException::RawspeedException
  - XSTR
  - STR
  - ThrowExceptionHelper
  - ThrowExceptionHelper
  - ThrowRSE
  source_file: /src/librawspeed/src/librawspeed/common/RawspeedException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ParseChecksumFileLine
  - rawspeed::ParseChecksumFileLine
  - rawspeed::ParseChecksumFileContent
  - rawspeed::ReadChecksumFile
  - rawspeed::ParseChecksumFileLine
  - rawspeed::ParseChecksumFileLine
  - rawspeed::ParseChecksumFileContent
  - rawspeed::ReadChecksumFile
  source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed_get_number_of_processor_cores
  - rawspeed_get_number_of_processor_cores
  source_file: /src/librawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawImageData::anchor
  - rawspeed::RawImageData::RawImageData
  - rawspeed::RawImageData::createData
  - rawspeed::RawImageData::poisonPadding
  - rawspeed::RawImageData::poisonPadding
  - rawspeed::RawImageData::unpoisonPadding
  - rawspeed::RawImageData::unpoisonPadding
  - rawspeed::RawImageData::setCpp
  - RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim() const
  - RAWSPEED_READONLY RawImageData::getCropOffset() const
  - rawspeed::RawImageData::subFrame
  - rawspeed::RawImageData::createBadPixelMap
  - rawspeed::RawImageData::transferBadPixelsToMap
  - rawspeed::RawImageData::fixBadPixels
  - rawspeed::RawImageData::startWorker
  - rawspeed::RawImageData::fixBadPixelsThread
  - rawspeed::RawImageData::clearArea
  - rawspeed::out
  - rawspeed::RawImageWorker::RawImageWorker
  - rawspeed::RawImageWorker::performTask
  - rawspeed::RawImageData::sixteenBitLookup
  - rawspeed::RawImageData::setTable
  - rawspeed::RawImageData::setTable
  - rawspeed::RawImageData::anchor
  - rawspeed::RawImageData::RawImageData
  - rawspeed::RawImageData::createData
  - rawspeed::RawImageData::poisonPadding
  - rawspeed::RawImageData::poisonPadding
  - rawspeed::RawImageData::unpoisonPadding
  - rawspeed::RawImageData::unpoisonPadding
  - rawspeed::RawImageData::setCpp
  - RAWSPEED_READONLY rawspeed::RawImageData::getUncroppedDim() const
  - RAWSPEED_READONLY RawImageData::getCropOffset() const
  - rawspeed::RawImageData::subFrame
  - rawspeed::RawImageData::createBadPixelMap
  - rawspeed::RawImageData::transferBadPixelsToMap
  - rawspeed::RawImageData::fixBadPixels
  - rawspeed::RawImageData::startWorker
  - rawspeed::RawImageData::fixBadPixelsThread
  - rawspeed::RawImageData::clearArea
  - rawspeed::out
  - rawspeed::RawImageWorker::RawImageWorker
  - rawspeed::RawImageWorker::performTask
  - rawspeed::RawImageData::sixteenBitLookup
  - rawspeed::RawImageData::setTable
  - rawspeed::RawImageData::setTable
  source_file: /src/librawspeed/src/librawspeed/common/RawImage.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ErrorLog::setError
  - rawspeed::ErrorLog::isTooManyErrors
  - '&& ErrorLog::getErrors()'
  - rawspeed::ErrorLog::setError
  - rawspeed::ErrorLog::isTooManyErrors
  - '&& ErrorLog::getErrors()'
  source_file: /src/librawspeed/src/librawspeed/common/ErrorLog.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawImageDataFloat::RawImageDataFloat
  - rawspeed::RawImageDataFloat::RawImageDataFloat
  - rawspeed::RawImageDataFloat::calculateBlackAreas
  - rawspeed::RawImageDataFloat::scaleBlackWhite
  - rawspeed::RawImageDataFloat::scaleValues
  - rawspeed::RawImageDataFloat::fixBadPixel
  - rawspeed::RawImageDataFloat::doLookup
  - rawspeed::RawImageDataFloat::setWithLookUp
  - rawspeed::RawImageDataFloat::RawImageDataFloat
  - rawspeed::RawImageDataFloat::RawImageDataFloat
  - rawspeed::RawImageDataFloat::calculateBlackAreas
  - rawspeed::RawImageDataFloat::scaleBlackWhite
  - rawspeed::RawImageDataFloat::scaleValues
  - rawspeed::RawImageDataFloat::fixBadPixel
  - rawspeed::RawImageDataFloat::doLookup
  - rawspeed::RawImageDataFloat::setWithLookUp
  source_file: /src/librawspeed/src/librawspeed/common/RawImageDataFloat.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - writeLog
  source_file: /src/librawspeed/src/librawspeed/common/Common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: FullFileName
        type: std::string
      - name: RelFileName
        type: std::string
      item_type: struct
      name: ChecksumFileEntry
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.h
    - fields:
      - name: FullFileName
        type: std::string
      - name: RelFileName
        type: std::string
      item_type: struct
      name: ChecksumFileEntry
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/librawspeed/src/librawspeed/common/ChecksumFile.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~RawImageData()
  - rawspeed::RawImageData::getCpp
  - rawspeed::RawImageData::getBpp
  - rawspeed::RawImageData::getDataType
  - rawspeed::RawImageData::isAllocated
  - rawspeed::RawImageData::RawImageData
  - operator->() const
  - operator*() const
  - rawspeed::RawImage::RawImage
  - rawspeed::RawImage::RawImage
  - rawspeed::RawImage::get
  - rawspeed::RawImage::create
  - rawspeed::RawImage::create
  - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
  - rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
  - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
  - rawspeed::RawImageData::getF32DataAsCroppedArray2DRef
  - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
  - rawspeed::RawImageDataU16::setWithLookUp
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - '& operator=(const RawImageCurveGuard&) noexcept'
  - '& operator=(RawImageCurveGuard&&) noexcept'
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - ~RawImageCurveGuard()
  - ~RawImageData()
  - rawspeed::RawImageData::getCpp
  - rawspeed::RawImageData::getBpp
  - rawspeed::RawImageData::getDataType
  - rawspeed::RawImageData::isAllocated
  - rawspeed::RawImageData::RawImageData
  - operator->() const
  - operator*() const
  - rawspeed::RawImage::RawImage
  - rawspeed::RawImage::RawImage
  - rawspeed::RawImage::get
  - rawspeed::RawImage::create
  - rawspeed::RawImage::create
  - rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef
  - rawspeed::RawImageData::getU16DataAsCroppedArray2DRef
  - rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef
  - rawspeed::RawImageData::getF32DataAsCroppedArray2DRef
  - rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef
  - rawspeed::RawImageDataU16::setWithLookUp
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - '& operator=(const RawImageCurveGuard&) noexcept'
  - '& operator=(RawImageCurveGuard&&) noexcept'
  - rawspeed::RawImageCurveGuard::RawImageCurveGuard
  - ~RawImageCurveGuard()
  source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
  types:
    enum:
    - enumerators:
      - name: UINT16
      - name: F32
      item_type: enum
      name: RawImageType
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - enumerators:
      - name: SCALE_VALUES
        value: '1'
      - name: APPLY_LOOKUP
        value: 3 | 0x1000
      - name: FULL_IMAGE
        value: '0x1000'
      - name: FIX_BAD_PIXELS
        value: '2'
      item_type: enum
      name: RawImageWorkerTask
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - enumerators:
      - name: UINT16
      - name: F32
      item_type: enum
      name: RawImageType
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    - enumerators:
      - name: SCALE_VALUES
        value: '1'
      - name: APPLY_LOOKUP
        value: 3 | 0x1000
      - name: FULL_IMAGE
        value: '0x1000'
      - name: FIX_BAD_PIXELS
        value: '2'
      item_type: enum
      name: RawImageWorkerTask
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/src/librawspeed/common/RawImage.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/common/TableLookUp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getDataAsCroppedArray2DRef
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getDataAsCroppedArray2DRef
  - (integrated_subimg_)
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - '& operator=(const DngOpcode&) noexcept'
  - '& operator=(DngOpcode&&) noexcept'
  - ~DngOpcode()
  - rawspeed::DngOpcodes::DngOpcode::setup
  - DngOpcodes::DngOpcode::anchor() const
  - rawspeed::DngOpcodes::FixBadPixelsConstant::FixBadPixelsConstant
  - rawspeed::DngOpcodes::FixBadPixelsConstant::setup
  - rawspeed::DngOpcodes::FixBadPixelsConstant::apply
  - DngOpcodes::FixBadPixelsConstant::anchor() const
  - rawspeed::DngOpcodes::ROIOpcode::ROIOpcode
  - rawspeed::DngOpcodes::ROIOpcode::getRoi
  - DngOpcodes::ROIOpcode::anchor() const
  - rawspeed::DngOpcodes::DummyROIOpcode::DummyROIOpcode
  - rawspeed::DngOpcodes::DummyROIOpcode::apply
  - DngOpcodes::DummyROIOpcode::anchor() const
  - rawspeed::DngOpcodes::FixBadPixelsList::FixBadPixelsList
  - rawspeed::DngOpcodes::FixBadPixelsList::apply
  - DngOpcodes::FixBadPixelsList::anchor() const
  - rawspeed::DngOpcodes::TrimBounds::TrimBounds
  - rawspeed::DngOpcodes::TrimBounds::apply
  - DngOpcodes::TrimBounds::anchor() const
  - rawspeed::DngOpcodes::PixelOpcode::PixelOpcode
  - rawspeed::DngOpcodes::PixelOpcode::getPitch
  - rawspeed::DngOpcodes::PixelOpcode::applyOP
  - DngOpcodes::PixelOpcode::anchor() const
  - rawspeed::DngOpcodes::LookupOpcode::setup
  - rawspeed::DngOpcodes::LookupOpcode::apply
  - DngOpcodes::LookupOpcode::anchor() const
  - rawspeed::DngOpcodes::TableMap::TableMap
  - DngOpcodes::TableMap::anchor() const
  - rawspeed::DngOpcodes::PolynomialMap::PolynomialMap
  - DngOpcodes::PolynomialMap::anchor() const
  - rawspeed::DngOpcodes::DeltaRowOrColBase::select
  - rawspeed::DngOpcodes::DeltaRowOrColBase::select
  - rawspeed::DngOpcodes::DeltaRowOrColBase::DeltaRowOrColBase
  - DngOpcodes::DeltaRowOrColBase::anchor() const
  - rawspeed::DngOpcodes::DeltaRowOrCol::setup
  - rawspeed::DngOpcodes::DeltaRowOrCol::DeltaRowOrCol
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::valueIsOk
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::OffsetPerRowOrCol
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::apply
  - rawspeed::DngOpcodes::ScalePerRowOrCol::valueIsOk
  - rawspeed::DngOpcodes::ScalePerRowOrCol::ScalePerRowOrCol
  - rawspeed::DngOpcodes::ScalePerRowOrCol::apply
  - rawspeed::DngOpcodes::DngOpcodes
  - DngOpcodes::~DngOpcodes()
  - rawspeed::DngOpcodes::applyOpCodes
  - rawspeed::DngOpcodes::constructor
  - rawspeed::DngOpcodes::Map
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getDataAsCroppedArray2DRef
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getImageCropAsRectangle
  - rawspeed::getDataAsCroppedArray2DRef
  - (integrated_subimg_)
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - rawspeed::DngOpcodes::DngOpcode::DngOpcode
  - '& operator=(const DngOpcode&) noexcept'
  - '& operator=(DngOpcode&&) noexcept'
  - ~DngOpcode()
  - rawspeed::DngOpcodes::DngOpcode::setup
  - DngOpcodes::DngOpcode::anchor() const
  - rawspeed::DngOpcodes::FixBadPixelsConstant::FixBadPixelsConstant
  - rawspeed::DngOpcodes::FixBadPixelsConstant::setup
  - rawspeed::DngOpcodes::FixBadPixelsConstant::apply
  - DngOpcodes::FixBadPixelsConstant::anchor() const
  - rawspeed::DngOpcodes::ROIOpcode::ROIOpcode
  - rawspeed::DngOpcodes::ROIOpcode::getRoi
  - DngOpcodes::ROIOpcode::anchor() const
  - rawspeed::DngOpcodes::DummyROIOpcode::DummyROIOpcode
  - rawspeed::DngOpcodes::DummyROIOpcode::apply
  - DngOpcodes::DummyROIOpcode::anchor() const
  - rawspeed::DngOpcodes::FixBadPixelsList::FixBadPixelsList
  - rawspeed::DngOpcodes::FixBadPixelsList::apply
  - DngOpcodes::FixBadPixelsList::anchor() const
  - rawspeed::DngOpcodes::TrimBounds::TrimBounds
  - rawspeed::DngOpcodes::TrimBounds::apply
  - DngOpcodes::TrimBounds::anchor() const
  - rawspeed::DngOpcodes::PixelOpcode::PixelOpcode
  - rawspeed::DngOpcodes::PixelOpcode::getPitch
  - rawspeed::DngOpcodes::PixelOpcode::applyOP
  - DngOpcodes::PixelOpcode::anchor() const
  - rawspeed::DngOpcodes::LookupOpcode::setup
  - rawspeed::DngOpcodes::LookupOpcode::apply
  - DngOpcodes::LookupOpcode::anchor() const
  - rawspeed::DngOpcodes::TableMap::TableMap
  - DngOpcodes::TableMap::anchor() const
  - rawspeed::DngOpcodes::PolynomialMap::PolynomialMap
  - DngOpcodes::PolynomialMap::anchor() const
  - rawspeed::DngOpcodes::DeltaRowOrColBase::select
  - rawspeed::DngOpcodes::DeltaRowOrColBase::select
  - rawspeed::DngOpcodes::DeltaRowOrColBase::DeltaRowOrColBase
  - DngOpcodes::DeltaRowOrColBase::anchor() const
  - rawspeed::DngOpcodes::DeltaRowOrCol::setup
  - rawspeed::DngOpcodes::DeltaRowOrCol::DeltaRowOrCol
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::valueIsOk
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::OffsetPerRowOrCol
  - rawspeed::DngOpcodes::OffsetPerRowOrCol::apply
  - rawspeed::DngOpcodes::ScalePerRowOrCol::valueIsOk
  - rawspeed::DngOpcodes::ScalePerRowOrCol::ScalePerRowOrCol
  - rawspeed::DngOpcodes::ScalePerRowOrCol::apply
  - rawspeed::DngOpcodes::DngOpcodes
  - DngOpcodes::~DngOpcodes()
  - rawspeed::DngOpcodes::applyOpCodes
  - rawspeed::DngOpcodes::constructor
  - rawspeed::DngOpcodes::Map
  source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: SelectX
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    - fields: []
      item_type: struct
      name: SelectY
      pos:
        line_end: 522
        line_start: 520
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    - fields: []
      item_type: struct
      name: SelectX
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    - fields: []
      item_type: struct
      name: SelectY
      pos:
        line_end: 522
        line_start: 520
        source_file: /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::TableLookUp::TableLookUp
  - rawspeed::TableLookUp::setTable
  - rawspeed::TableLookUp::getTable
  - rawspeed::TableLookUp::TableLookUp
  - rawspeed::TableLookUp::setTable
  - rawspeed::TableLookUp::getTable
  source_file: /src/librawspeed/src/librawspeed/common/TableLookUp.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getTranslationalOffset
  - rawspeed::applyPhaseShift
  - rawspeed::getAsCFAColors
  - rawspeed::getAsXTransPhase
  - rawspeed::getTranslationalOffset
  - rawspeed::applyPhaseShift
  - rawspeed::getAsCFAColors
  - rawspeed::getAsXTransPhase
  source_file: /src/librawspeed/src/librawspeed/common/XTransPhase.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawImageDataU16::RawImageDataU16
  - rawspeed::RawImageDataU16::RawImageDataU16
  - rawspeed::RawImageDataU16::calculateBlackAreas
  - rawspeed::histogram
  - rawspeed::RawImageDataU16::scaleBlackWhite
  - rawspeed::RawImageDataU16::scaleValues
  - rawspeed::RawImageDataU16::scaleValues_SSE2
  - rawspeed::RawImageDataU16::scaleValues_plain
  - rawspeed::RawImageDataU16::fixBadPixel
  - rawspeed::RawImageDataU16::doLookup
  - rawspeed::RawImageDataU16::RawImageDataU16
  - rawspeed::RawImageDataU16::RawImageDataU16
  - rawspeed::RawImageDataU16::calculateBlackAreas
  - rawspeed::histogram
  - rawspeed::RawImageDataU16::scaleBlackWhite
  - rawspeed::RawImageDataU16::scaleValues
  - rawspeed::RawImageDataU16::scaleValues_SSE2
  - rawspeed::RawImageDataU16::scaleValues_plain
  - rawspeed::RawImageDataU16::fixBadPixel
  - rawspeed::RawImageDataU16::doLookup
  source_file: /src/librawspeed/src/librawspeed/common/RawImageDataU16.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Spline::prepare
  - rawspeed::Spline::Spline
  - rawspeed::Spline::getSegments
  - rawspeed::Spline::calculateCurve
  - rawspeed::Spline::prepare
  - rawspeed::Spline::Spline
  - rawspeed::Spline::getSegments
  - rawspeed::Spline::calculateCurve
  source_file: /src/librawspeed/src/librawspeed/common/Spline.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: a
        type: double
      - name: b
        type: double
      - name: c
        type: double
      - name: d
        type: double
      item_type: struct
      name: Segment
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    - fields:
      - name: a
        type: double
      - name: b
        type: double
      - name: c
        type: double
      - name: d
        type: double
      item_type: struct
      name: Segment
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/librawspeed/src/librawspeed/common/Spline.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::getTranslationalOffset
  - rawspeed::applyPhaseShift
  - rawspeed::getAsCFAColors
  - rawspeed::applyStablePhaseShift
  - rawspeed::getAsBayerPhase
  - rawspeed::getTranslationalOffset
  - rawspeed::applyPhaseShift
  - rawspeed::getAsCFAColors
  - rawspeed::applyStablePhaseShift
  - rawspeed::getAsBayerPhase
  source_file: /src/librawspeed/src/librawspeed/common/BayerPhase.h
  types:
    enum:
    - enumerators:
      - name: RGGB
        value: '0b00'
      - name: GRBG
        value: '0b01'
      - name: GBRG
        value: '0b10'
      - name: BGGR
        value: '0b11'
      item_type: enum
      name: BayerPhase
      pos:
        line_end: 60
        line_start: 48
        source_file: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    - enumerators:
      - name: RGGB
        value: '0b00'
      - name: GRBG
        value: '0b01'
      - name: GBRG
        value: '0b10'
      - name: BGGR
        value: '0b11'
      item_type: enum
      name: BayerPhase
      pos:
        line_end: 60
        line_start: 48
        source_file: /src/librawspeed/src/librawspeed/common/BayerPhase.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::SimpleLUT::SimpleLUT
  - rawspeed::SimpleLUT::SimpleLUT
  - operator[](int x) const
  - rawspeed::SimpleLUT::SimpleLUT
  - rawspeed::SimpleLUT::SimpleLUT
  - operator[](int x) const
  source_file: /src/librawspeed/src/librawspeed/common/SimpleLUT.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/common/ErrorLog.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::iterator_range::iterator_range
  - rawspeed::iterator_range::begin
  - rawspeed::iterator_range::end
  - rawspeed::iterator_range::empty
  - rawspeed::make_range
  - rawspeed::make_range
  - rawspeed::iterator_range::iterator_range
  - rawspeed::iterator_range::begin
  - rawspeed::iterator_range::end
  - rawspeed::iterator_range::empty
  - rawspeed::make_range
  - rawspeed::make_range
  source_file: /src/librawspeed/src/librawspeed/adt/iterator_range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitMSBIterator
  - operator*() const
  - '& operator++()'
  - operator==(const BitMSBIterator& a, const BitMSBIterator& b)
  - rawspeed::BitMSBIterator
  - operator*() const
  - '& operator++()'
  - operator==(const BitMSBIterator& a, const BitMSBIterator& b)
  source_file: /src/librawspeed/src/librawspeed/adt/BitIterator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bitsPat
        type: T
      - name: bitIdx
        type: int
      item_type: struct
      name: BitMSBIterator
      pos:
        line_end: 60
        line_start: 32
        source_file: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    - fields:
      - name: bitsPat
        type: T
      - name: bitIdx
        type: int
      item_type: struct
      name: BitMSBIterator
      pos:
        line_end: 60
        line_start: 32
        source_file: /src/librawspeed/src/librawspeed/adt/BitIterator.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
  - rawspeed::NORangesSet::insert
  - rawspeed::NORangesSet::size
  - rawspeed::NORangesSet::rangeIsOverlappingExistingElementOfSortedSet
  - rawspeed::NORangesSet::insert
  - rawspeed::NORangesSet::size
  source_file: /src/librawspeed/src/librawspeed/adt/NORangesSet.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::NotARational
  - rawspeed::NotARational
  - operator T2() const
  - rawspeed::NotARational
  - rawspeed::NotARational
  - operator T2() const
  source_file: /src/librawspeed/src/librawspeed/adt/NotARational.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: num
        type: T
      - name: den
        type: T
      item_type: struct
      name: NotARational
      pos:
        line_end: 41
        line_start: 26
        source_file: /src/librawspeed/src/librawspeed/adt/NotARational.h
    - fields:
      - name: num
        type: T
      - name: den
        type: T
      item_type: struct
      name: NotARational
      pos:
        line_end: 41
        line_start: 26
        source_file: /src/librawspeed/src/librawspeed/adt/NotARational.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::create
  - rawspeed::Array2DRef<T>::establishClassInvariants
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::pitch
  - rawspeed::Array2DRef<T>::width
  - rawspeed::Array2DRef<T>::height
  - rawspeed::Array2DRef<T>::getAsArray1DRef
  - Array2DRef<T>::operator[](const int row) const
  - '&

    Array2DRef<T>::operator()(const int row, const int col) const'
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::Array2DRef
  - rawspeed::Array2DRef::create
  - rawspeed::Array2DRef<T>::establishClassInvariants
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::Array2DRef
  - rawspeed::Array2DRef<T>::pitch
  - rawspeed::Array2DRef<T>::width
  - rawspeed::Array2DRef<T>::height
  - rawspeed::Array2DRef<T>::getAsArray1DRef
  - Array2DRef<T>::operator[](const int row) const
  - '&

    Array2DRef<T>::operator()(const int row, const int col) const'
  source_file: /src/librawspeed/src/librawspeed/adt/Array2DRef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - invariant
  - __has_builtin
  - invariant
  - rawspeed::invariant
  - rawspeed::invariant
  source_file: /src/librawspeed/src/librawspeed/adt/Invariant.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::final
  - rawspeed::Mutex
  - rawspeed::Mutex
  - ~Mutex()
  - rawspeed::ACQUIRE
  - rawspeed::RELEASE
  - rawspeed::TRY_ACQUIRE
  - '& operator!() const'
  - rawspeed::final
  - rawspeed::Mutex
  - rawspeed::Mutex
  - rawspeed::ACQUIRE
  - rawspeed::RELEASE
  - rawspeed::TRY_ACQUIRE
  - '& operator!() const'
  - rawspeed::MutexLocker
  - rawspeed::ACQUIRE
  - rawspeed::MutexLocker
  - rawspeed::MutexLocker
  - rawspeed::RELEASE
  - rawspeed::final
  - rawspeed::Mutex
  - rawspeed::Mutex
  - ~Mutex()
  - rawspeed::ACQUIRE
  - rawspeed::RELEASE
  - rawspeed::TRY_ACQUIRE
  - '& operator!() const'
  - rawspeed::final
  - rawspeed::Mutex
  - rawspeed::Mutex
  - rawspeed::ACQUIRE
  - rawspeed::RELEASE
  - rawspeed::TRY_ACQUIRE
  - '& operator!() const'
  - rawspeed::MutexLocker
  - rawspeed::ACQUIRE
  - rawspeed::MutexLocker
  - rawspeed::MutexLocker
  - rawspeed::RELEASE
  source_file: /src/librawspeed/src/librawspeed/adt/Mutex.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
  - rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
  - '& operator*()'
  - '& operator++()'
  - operator++(int)
  - '& operator=(U coalesced)'
  - rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
  - rawspeed::PartitioningOutputIterator::PartitioningOutputIterator
  - '& operator*()'
  - '& operator++()'
  - operator++(int)
  - '& operator=(U coalesced)'
  source_file: /src/librawspeed/src/librawspeed/adt/PartitioningOutputIterator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::getAsArray2DRef
  - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
  - rawspeed::CroppedArray2DRef<T>::CroppedArray2DRef
  - CroppedArray2DRef<T>::operator[](const int row) const
  - '& CroppedArray2DRef<T>::operator()(const int row, const int col) const'
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::CroppedArray2DRef
  - rawspeed::CroppedArray2DRef::getAsArray2DRef
  - rawspeed::CroppedArray2DRef<T>::establishClassInvariants
  - rawspeed::CroppedArray2DRef<T>::CroppedArray2DRef
  - CroppedArray2DRef<T>::operator[](const int row) const
  - '& CroppedArray2DRef<T>::operator()(const int row, const int col) const'
  source_file: /src/librawspeed/src/librawspeed/adt/CroppedArray2DRef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::variableLengthLoad
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::variableLengthLoad
  - rawspeed::variableLengthLoad
  - rawspeed::variableLengthLoadNaiveViaConditionalLoad
  - rawspeed::variableLengthLoadNaiveViaMemcpy
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::variableLengthLoad
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::logicalRightShiftSafe
  - rawspeed::impl::variableLengthLoad
  - rawspeed::variableLengthLoad
  - rawspeed::variableLengthLoadNaiveViaConditionalLoad
  - rawspeed::variableLengthLoadNaiveViaMemcpy
  source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: zext
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint8_t>
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint16_t>
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint32_t>
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint8_t>
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint16_t>
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint32_t>
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint8_t>
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint16_t>
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint32_t>
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint8_t>
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint16_t>
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    - fields: []
      item_type: struct
      name: zext<uint32_t>
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/adt/VariableLengthLoad.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::RAWSPEED_READNONE::isPowerOfTwo
  - rawspeed::bitwidth
  - rawspeed::numSignBits
  - rawspeed::numActiveBits
  - rawspeed::numActiveBits
  - rawspeed::numSignificantBits
  - rawspeed::RAWSPEED_READNONE::clampBits
  - rawspeed::RAWSPEED_READNONE::isIntN
  - rawspeed::extractLowBits
  - rawspeed::extractLowBitsSafe
  - rawspeed::extractHighBits
  - rawspeed::RAWSPEED_READNONE::signExtend
  - rawspeed::bitreverse
  - rawspeed::bitreverse
  - rawspeed::bitreverse_each
  - rawspeed::RAWSPEED_READNONE::isPowerOfTwo
  - rawspeed::bitwidth
  - rawspeed::numSignBits
  - rawspeed::numActiveBits
  - rawspeed::numActiveBits
  - rawspeed::numSignificantBits
  - rawspeed::RAWSPEED_READNONE::clampBits
  - rawspeed::RAWSPEED_READNONE::isIntN
  - rawspeed::extractLowBits
  - rawspeed::extractLowBitsSafe
  - rawspeed::extractHighBits
  - rawspeed::RAWSPEED_READNONE::signExtend
  - rawspeed::bitreverse
  - rawspeed::bitreverse
  - rawspeed::bitreverse_each
  source_file: /src/librawspeed/src/librawspeed/adt/Bit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& get_allocator() const noexcept'
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::allocate
  - rawspeed::DefaultInitAllocatorAdaptor::deallocate
  - rawspeed::DefaultInitAllocatorAdaptor::construct
  - "operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
    A1> const& y) noexcept"
  - "operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
    A1> const& y) noexcept"
  - '& get_allocator() const noexcept'
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::DefaultInitAllocatorAdaptor
  - rawspeed::DefaultInitAllocatorAdaptor::allocate
  - rawspeed::DefaultInitAllocatorAdaptor::deallocate
  - rawspeed::DefaultInitAllocatorAdaptor::construct
  - "operator==(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
    A1> const& y) noexcept"
  - "operator!=(DefaultInitAllocatorAdaptor<T0, A0> const& x,\n                DefaultInitAllocatorAdaptor<T1,
    A1> const& y) noexcept"
  source_file: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: rebind
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    - fields: []
      item_type: struct
      name: rebind
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/librawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::iPoint2D::iPoint2D
  - rawspeed::iPoint2D::iPoint2D
  - operator+(const iPoint2D& rhs) const
  - operator-(const iPoint2D& rhs) const
  - '& operator+=(const iPoint2D& rhs)'
  - '& operator-=(const iPoint2D& rhs)'
  - operator==(const iPoint2D& rhs) const
  - operator>(const iPoint2D& rhs) const
  - operator<(const iPoint2D& rhs) const
  - operator>=(const iPoint2D& rhs) const
  - operator<=(const iPoint2D& rhs) const
  - rawspeed::iPoint2D::hasPositiveArea
  - rawspeed::iPoint2D::area
  - rawspeed::iPoint2D::isThisInside
  - rawspeed::iPoint2D::getSmallest
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::getTop
  - rawspeed::iRectangle2D::getBottom
  - rawspeed::iRectangle2D::getLeft
  - rawspeed::iRectangle2D::getRight
  - rawspeed::iRectangle2D::getWidth
  - rawspeed::iRectangle2D::getHeight
  - rawspeed::iRectangle2D::getTopLeft
  - rawspeed::iRectangle2D::getBottomRight
  - rawspeed::iRectangle2D::getTopRight
  - rawspeed::iRectangle2D::getBottomLeft
  - rawspeed::iRectangle2D::hasPositiveArea
  - rawspeed::iRectangle2D::isPointInside
  - rawspeed::iRectangle2D::isPointInsideInclusive
  - rawspeed::iRectangle2D::isThisInside
  - rawspeed::iRectangle2D::area
  - rawspeed::iRectangle2D::offset
  - rawspeed::iRectangle2D::setTopLeft
  - rawspeed::iRectangle2D::setBottomRightAbsolute
  - rawspeed::iRectangle2D::setAbsolute
  - rawspeed::iRectangle2D::setAbsolute
  - rawspeed::iRectangle2D::setSize
  - rawspeed::iRectangle2D::cropArea
  - rawspeed::iRectangle2D::cropOffsetToZero
  - rawspeed::iRectangle2D::getOverlap
  - rawspeed::iRectangle2D::combine
  - "RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
    iRectangle2D b)"
  - rawspeed::iPoint2D::iPoint2D
  - rawspeed::iPoint2D::iPoint2D
  - operator+(const iPoint2D& rhs) const
  - operator-(const iPoint2D& rhs) const
  - '& operator+=(const iPoint2D& rhs)'
  - '& operator-=(const iPoint2D& rhs)'
  - operator==(const iPoint2D& rhs) const
  - operator>(const iPoint2D& rhs) const
  - operator<(const iPoint2D& rhs) const
  - operator>=(const iPoint2D& rhs) const
  - operator<=(const iPoint2D& rhs) const
  - rawspeed::iPoint2D::hasPositiveArea
  - rawspeed::iPoint2D::area
  - rawspeed::iPoint2D::isThisInside
  - rawspeed::iPoint2D::getSmallest
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::iRectangle2D
  - rawspeed::iRectangle2D::getTop
  - rawspeed::iRectangle2D::getBottom
  - rawspeed::iRectangle2D::getLeft
  - rawspeed::iRectangle2D::getRight
  - rawspeed::iRectangle2D::getWidth
  - rawspeed::iRectangle2D::getHeight
  - rawspeed::iRectangle2D::getTopLeft
  - rawspeed::iRectangle2D::getBottomRight
  - rawspeed::iRectangle2D::getTopRight
  - rawspeed::iRectangle2D::getBottomLeft
  - rawspeed::iRectangle2D::hasPositiveArea
  - rawspeed::iRectangle2D::isPointInside
  - rawspeed::iRectangle2D::isPointInsideInclusive
  - rawspeed::iRectangle2D::isThisInside
  - rawspeed::iRectangle2D::area
  - rawspeed::iRectangle2D::offset
  - rawspeed::iRectangle2D::setTopLeft
  - rawspeed::iRectangle2D::setBottomRightAbsolute
  - rawspeed::iRectangle2D::setAbsolute
  - rawspeed::iRectangle2D::setAbsolute
  - rawspeed::iRectangle2D::setSize
  - rawspeed::iRectangle2D::cropArea
  - rawspeed::iRectangle2D::cropOffsetToZero
  - rawspeed::iRectangle2D::getOverlap
  - rawspeed::iRectangle2D::combine
  - "RAWSPEED_READONLY operator==(const iRectangle2D& a,\n                                         const
    iRectangle2D b)"
  source_file: /src/librawspeed/src/librawspeed/adt/Point.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AlignedAllocator::allocate
  - rawspeed::AlignedAllocator::deallocate
  - "operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
    AlignedAllocator<T2, A2>& /*unused*/)"
  - "operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
    AlignedAllocator<T2, A2>& /*unused*/)"
  - rawspeed::AlignedAllocator::allocate
  - rawspeed::AlignedAllocator::deallocate
  - "operator==(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
    AlignedAllocator<T2, A2>& /*unused*/)"
  - "operator!=(const AlignedAllocator<T1, A1>& /*unused*/,\n                const
    AlignedAllocator<T2, A2>& /*unused*/)"
  source_file: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: rebind
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    - fields: []
      item_type: struct
      name: rebind
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/adt/AlignedAllocator.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::getAsArray1DRef
  - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
  - rawspeed::CroppedArray1DRef<T>::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef<T>::getCrop
  - rawspeed::CroppedArray1DRef<T>::getBlock
  - rawspeed::CroppedArray1DRef<T>::begin
  - rawspeed::CroppedArray1DRef<T>::end
  - rawspeed::CroppedArray1DRef<T>::size
  - rawspeed::CroppedArray1DRef<T>::addressOf
  - '& CroppedArray1DRef<T>::operator()(const int eltIdx) const'
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef::getAsArray1DRef
  - rawspeed::CroppedArray1DRef<T>::establishClassInvariants
  - rawspeed::CroppedArray1DRef<T>::CroppedArray1DRef
  - rawspeed::CroppedArray1DRef<T>::getCrop
  - rawspeed::CroppedArray1DRef<T>::getBlock
  - rawspeed::CroppedArray1DRef<T>::begin
  - rawspeed::CroppedArray1DRef<T>::end
  - rawspeed::CroppedArray1DRef<T>::size
  - rawspeed::CroppedArray1DRef<T>::addressOf
  - '& CroppedArray1DRef<T>::operator()(const int eltIdx) const'
  source_file: /src/librawspeed/src/librawspeed/adt/CroppedArray1DRef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef<T>::establishClassInvariants
  - rawspeed::Array1DRef<T>::Array1DRef
  - rawspeed::Array1DRef<T>::getCrop
  - rawspeed::Array1DRef<T>::getBlock
  - rawspeed::Array1DRef<T>::addressOf
  - '&

    Array1DRef<T>::operator()(const int eltIdx) const'
  - rawspeed::Array1DRef<T>::size
  - rawspeed::Array1DRef<T>::begin
  - rawspeed::Array1DRef<T>::end
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef::Array1DRef
  - rawspeed::Array1DRef<T>::establishClassInvariants
  - rawspeed::Array1DRef<T>::Array1DRef
  - rawspeed::Array1DRef<T>::getCrop
  - rawspeed::Array1DRef<T>::getBlock
  - rawspeed::Array1DRef<T>::addressOf
  - '&

    Array1DRef<T>::operator()(const int eltIdx) const'
  - rawspeed::Array1DRef<T>::size
  - rawspeed::Array1DRef<T>::begin
  - rawspeed::Array1DRef<T>::end
  source_file: /src/librawspeed/src/librawspeed/adt/Array1DRef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::implicit_cast
  - rawspeed::implicit_cast
  - rawspeed::implicit_cast
  - rawspeed::implicit_cast
  source_file: /src/librawspeed/src/librawspeed/adt/Casts.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Range::Range
  - rawspeed::Range::Range
  - rawspeed::Range::begin
  - rawspeed::Range::end
  - operator<(const Range<T>& lhs, const Range<T>& rhs)
  - rawspeed::RAWSPEED_READNONE::RangeContains
  - rawspeed::RAWSPEED_READNONE::RangesOverlap
  - rawspeed::Range::Range
  - rawspeed::Range::Range
  - rawspeed::Range::begin
  - rawspeed::Range::end
  - operator<(const Range<T>& lhs, const Range<T>& rhs)
  - rawspeed::RAWSPEED_READNONE::RangeContains
  - rawspeed::RAWSPEED_READNONE::RangesOverlap
  source_file: /src/librawspeed/src/librawspeed/adt/Range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef<T>::establishClassInvariants
  - rawspeed::TiledArray2DRef<T>::TiledArray2DRef
  - rawspeed::TiledArray2DRef<T>::numCols
  - rawspeed::TiledArray2DRef<T>::numRows
  - TiledArray2DRef<T>::operator()(const int row, const int col) const
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef::TiledArray2DRef
  - rawspeed::TiledArray2DRef<T>::establishClassInvariants
  - rawspeed::TiledArray2DRef<T>::TiledArray2DRef
  - rawspeed::TiledArray2DRef<T>::numCols
  - rawspeed::TiledArray2DRef<T>::numRows
  - TiledArray2DRef<T>::operator()(const int row, const int col) const
  source_file: /src/librawspeed/src/librawspeed/adt/TiledArray2DRef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Optional::Optional
  - rawspeed::Optional::Optional
  - '& operator=(U&& value)'
  - rawspeed::Optional::emplace
  - '* operator->() const'
  - '* operator->()'
  - '& operator*() const&'
  - '& operator*() &'
  - '&& operator*() &&'
  - '&& operator*() const&&'
  - rawspeed::Optional::has_value
  - operator bool() const
  - rawspeed::Optional::value_or
  - rawspeed::Optional::reset
  - operator==(const Optional<T>& lhs, const U& rhs)
  - operator==(const Optional<T>& lhs, const Optional<U>& rhs)
  - rawspeed::Optional::Optional
  - rawspeed::Optional::Optional
  - '& operator=(U&& value)'
  - rawspeed::Optional::emplace
  - '* operator->() const'
  - '* operator->()'
  - '& operator*() const&'
  - '& operator*() &'
  - '&& operator*() &&'
  - '&& operator*() const&&'
  - rawspeed::Optional::has_value
  - operator bool() const
  - rawspeed::Optional::value_or
  - rawspeed::Optional::reset
  - operator==(const Optional<T>& lhs, const U& rhs)
  - operator==(const Optional<T>& lhs, const Optional<U>& rhs)
  source_file: /src/librawspeed/src/librawspeed/adt/Optional.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getAsArray1DRef
  - rawspeed::getAsArray1DRef
  source_file: /src/librawspeed/src/librawspeed/adt/Array1DRefExtras.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CoalescingOutputIterator::establishClassInvariants
  - rawspeed::CoalescingOutputIterator::maybeOutputCoalescedParts
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - '& operator=(const CoalescingOutputIterator& other)'
  - "&\n  operator=(CoalescingOutputIterator&& other) noexcept"
  - ~CoalescingOutputIterator()
  - '& operator*()'
  - '& operator++()'
  - operator++(int)
  - '& operator=(U part)'
  - rawspeed::CoalescingOutputIterator::establishClassInvariants
  - rawspeed::CoalescingOutputIterator::maybeOutputCoalescedParts
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - rawspeed::CoalescingOutputIterator::CoalescingOutputIterator
  - '& operator=(const CoalescingOutputIterator& other)'
  - "&\n  operator=(CoalescingOutputIterator&& other) noexcept"
  - ~CoalescingOutputIterator()
  - '& operator*()'
  - '& operator++()'
  - operator++(int)
  - '& operator=(U part)'
  source_file: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: DummyContainerType
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    - fields: []
      item_type: struct
      name: DummyContainerType
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/librawspeed/src/librawspeed/adt/CoalescingOutputIterator.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB16>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB16>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitStreamerReplenisherBase
  - rawspeed::BitStreamerReplenisherBase
  - rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
  - rawspeed::BitStreamerForwardSequentialReplenisher
  - rawspeed::getPos
  - rawspeed::getRemainingSize
  - rawspeed::markNumBytesAsConsumed
  - rawspeed::getInput
  - rawspeed::BitStreamer::fillCache
  - rawspeed::BitStreamer::establishClassInvariants
  - rawspeed::BitStreamer::BitStreamer
  - rawspeed::BitStreamer::BitStreamer
  - rawspeed::BitStreamer::reload
  - rawspeed::BitStreamer::fill
  - rawspeed::BitStreamer::getInputPosition
  - rawspeed::BitStreamer::getStreamPosition
  - rawspeed::BitStreamer::getRemainingSize
  - rawspeed::BitStreamer::getFillLevel
  - rawspeed::BitStreamer::peekBitsNoFill
  - rawspeed::BitStreamer::skipBitsNoFill
  - rawspeed::BitStreamer::getBitsNoFill
  - rawspeed::BitStreamer::peekBits
  - rawspeed::BitStreamer::skipBits
  - rawspeed::BitStreamer::getBits
  - rawspeed::BitStreamer::skipManyBits
  - rawspeed::BitStreamer::skipBytes
  - rawspeed::BitStreamerReplenisherBase
  - rawspeed::BitStreamerReplenisherBase
  - rawspeed::BitStreamerReplenisherBase<Tag>::establishClassInvariants
  - rawspeed::BitStreamerForwardSequentialReplenisher
  - rawspeed::getPos
  - rawspeed::getRemainingSize
  - rawspeed::markNumBytesAsConsumed
  - rawspeed::getInput
  - rawspeed::BitStreamer::fillCache
  - rawspeed::BitStreamer::establishClassInvariants
  - rawspeed::BitStreamer::BitStreamer
  - rawspeed::BitStreamer::BitStreamer
  - rawspeed::BitStreamer::reload
  - rawspeed::BitStreamer::fill
  - rawspeed::BitStreamer::getInputPosition
  - rawspeed::BitStreamer::getStreamPosition
  - rawspeed::BitStreamer::getRemainingSize
  - rawspeed::BitStreamer::getFillLevel
  - rawspeed::BitStreamer::peekBitsNoFill
  - rawspeed::BitStreamer::skipBitsNoFill
  - rawspeed::BitStreamer::getBitsNoFill
  - rawspeed::BitStreamer::peekBits
  - rawspeed::BitStreamer::skipBits
  - rawspeed::BitStreamer::getBits
  - rawspeed::BitStreamer::skipManyBits
  - rawspeed::BitStreamer::skipBytes
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input
        type: Array1DRef<const std::byte>
      - name: pos
        type: int
      - name: establishClassInvariants() const noexcept
        type: void
      item_type: struct
      name: BitStreamerReplenisherBase
      pos:
        line_end: 60
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    - fields: []
      item_type: struct
      name: BitStreamerForwardSequentialReplenisher
      pos:
        line_end: 132
        line_start: 73
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    - fields:
      - name: input
        type: Array1DRef<const std::byte>
      - name: pos
        type: int
      - name: establishClassInvariants() const noexcept
        type: void
      item_type: struct
      name: BitStreamerReplenisherBase
      pos:
        line_end: 60
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    - fields: []
      item_type: struct
      name: BitStreamerForwardSequentialReplenisher
      pos:
        line_end: 132
        line_start: 73
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreams.h
  types:
    enum:
    - enumerators:
      - name: LSB
      - name: MSB32
      - name: MSB
      - name: MSB16
      - name: JPEG
      item_type: enum
      name: BitOrder
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreams.h
    - enumerators:
      - name: LSB
      - name: MSB32
      - name: MSB
      - name: MSB16
      - name: JPEG
      item_type: enum
      name: BitOrder
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreams.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB16<OutputIterator>>
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h
    - fields:
      - name: Tag
        type: BitOrder
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB16<OutputIterator>>
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitStreamCacheBase::establishClassInvariants
  - rawspeed::push
  - rawspeed::peek
  - rawspeed::skip
  - rawspeed::push
  - rawspeed::peek
  - rawspeed::skip
  - rawspeed::BitStreamCacheBase::establishClassInvariants
  - rawspeed::push
  - rawspeed::peek
  - rawspeed::skip
  - rawspeed::push
  - rawspeed::peek
  - rawspeed::skip
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cache
        type: uint64_t
      - name: fillLevel
        type: int
      - name: Size
        type: int
      - name: MaxGetBits
        type: int
      - name: establishClassInvariants() const noexcept
        type: void
      item_type: struct
      name: BitStreamCacheBase
      pos:
        line_end: 50
        line_start: 40
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    - fields: []
      item_type: struct
      name: BitStreamCacheLeftInRightOut
      pos:
        line_end: 89
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    - fields: []
      item_type: struct
      name: BitStreamCacheRightInLeftOut
      pos:
        line_end: 140
        line_start: 91
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    - fields:
      - name: cache
        type: uint64_t
      - name: fillLevel
        type: int
      - name: Size
        type: int
      - name: MaxGetBits
        type: int
      - name: establishClassInvariants() const noexcept
        type: void
      item_type: struct
      name: BitStreamCacheBase
      pos:
        line_end: 50
        line_start: 40
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    - fields: []
      item_type: struct
      name: BitStreamCacheLeftInRightOut
      pos:
        line_end: 89
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    - fields: []
      item_type: struct
      name: BitStreamCacheRightInLeftOut
      pos:
        line_end: 140
        line_start: 91
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStream.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB>
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB>
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::JPEG>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::JPEG>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::PosOrUnknown::PosOrUnknown
  - rawspeed::PosOrUnknown::has_value
  - '& operator=(U newValue)'
  - rawspeed::PosOrUnknown::value_or
  - rawspeed::BitStreamerJPEG::fillCache
  - rawspeed::BitStreamerJPEG::getStreamPosition
  - rawspeed::PosOrUnknown::PosOrUnknown
  - rawspeed::PosOrUnknown::has_value
  - '& operator=(U newValue)'
  - rawspeed::PosOrUnknown::value_or
  - rawspeed::BitStreamerJPEG::fillCache
  - rawspeed::BitStreamerJPEG::getStreamPosition
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerJPEG>
      pos:
        line_end: 79
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerJPEG>
      pos:
        line_end: 79
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerLSB<OutputIterator>>
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h
    - fields:
      - name: Tag
        type: BitOrder
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerLSB<OutputIterator>>
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB32>
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB32>
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamLSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::LSB>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamLSB.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::LSB>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamLSB.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::getAsByteStreamPosition
  - rawspeed::getAsByteStreamPosition
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pos
        type: int
      - name: fillLevel
        type: int
      item_type: struct
      name: BitStreamPosition
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    - fields:
      - name: bytePos
        type: int
      - name: numBitsToSkip
        type: int
      item_type: struct
      name: ByteStreamPosition
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    - fields:
      - name: pos
        type: int
      - name: fillLevel
        type: int
      item_type: struct
      name: BitStreamPosition
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    - fields:
      - name: bytePos
        type: int
      - name: numBitsToSkip
        type: int
      item_type: struct
      name: ByteStreamPosition
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamPosition.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB32<OutputIterator>>
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB32<OutputIterator>>
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumerJPEG::drainImpl
  - rawspeed::BitVacuumerJPEG::drainImpl
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerJPEG<OutputIterator>>
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerJPEG<OutputIterator>>
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB16>
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerMSB16>
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB32>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB32>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB<OutputIterator>>
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeEncoder
        type: bool
      item_type: struct
      name: BitVacuumerTraits<BitVacuumerMSB<OutputIterator>>
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerLSB>
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerLSB>
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB.h
    - fields:
      - name: Tag
        type: BitOrder
      - name: FixedSizeChunks
        type: bool
      - name: ChunkEndianness
        type: Endianness
      - name: MinLoadStepByteMultiple
        type: int
      item_type: struct
      name: BitStreamTraits<BitOrder::MSB>
      pos:
        line_end: 42
        line_start: 30
        source_file: /src/librawspeed/src/librawspeed/bitstreams/BitStreamMSB.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::BitVacuumer::drainImpl
  - rawspeed::BitVacuumer::drain
  - rawspeed::BitVacuumer::flush
  - rawspeed::BitVacuumer::BitVacuumer
  - rawspeed::BitVacuumer::BitVacuumer
  - rawspeed::BitVacuumer::BitVacuumer
  - '& operator=(const BitVacuumer&)'
  - '& operator=(BitVacuumer&&)'
  - rawspeed::BitVacuumer::BitVacuumer
  - ~BitVacuumer()
  - rawspeed::BitVacuumer::put
  - rawspeed::BitVacuumer::drainImpl
  - rawspeed::BitVacuumer::drain
  - rawspeed::BitVacuumer::flush
  - rawspeed::BitVacuumer::BitVacuumer
  - rawspeed::BitVacuumer::BitVacuumer
  - rawspeed::BitVacuumer::BitVacuumer
  - '& operator=(const BitVacuumer&)'
  - '& operator=(BitVacuumer&&)'
  - rawspeed::BitVacuumer::BitVacuumer
  - ~BitVacuumer()
  - rawspeed::BitVacuumer::put
  source_file: /src/librawspeed/src/librawspeed/bitstreams/BitVacuumer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/tiff/CiffTag.h
  types:
    enum:
    - enumerators:
      - name: NULL_TAG
        value: '0x0000'
      - name: MAKEMODEL
        value: '0x080a'
      - name: SHOTINFO
        value: '0x102a'
      - name: WHITEBALANCE
        value: '0x10a9'
      - name: SENSORINFO
        value: '0x1031'
      - name: IMAGEINFO
        value: '0x1810'
      - name: DECODERTABLE
        value: '0x1835'
      - name: RAWDATA
        value: '0x2005'
      - name: SUBIFD
        value: '0x300a'
      - name: EXIF
        value: '0x300b'
      item_type: enum
      name: CiffTag
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffTag.h
    - enumerators:
      - name: NULL_TAG
        value: '0x0000'
      - name: MAKEMODEL
        value: '0x080a'
      - name: SHOTINFO
        value: '0x102a'
      - name: WHITEBALANCE
        value: '0x10a9'
      - name: SENSORINFO
        value: '0x1031'
      - name: IMAGEINFO
        value: '0x1810'
      - name: DECODERTABLE
        value: '0x1835'
      - name: RAWDATA
        value: '0x2005'
      - name: SUBIFD
        value: '0x300a'
      - name: EXIF
        value: '0x300b'
      item_type: enum
      name: CiffTag
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffTag.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CiffEntry::getData
  - rawspeed::CiffEntry::getData
  source_file: /src/librawspeed/src/librawspeed/tiff/CiffEntry.h
  types:
    enum:
    - enumerators:
      - name: BYTE
        value: '0x0000'
      - name: LONG
        value: '0x1800'
      - name: MIX
        value: '0x2000'
      - name: SHORT
        value: '0x1000'
      - name: ASCII
        value: '0x0800'
      - name: SUB1
        value: '0x2800'
      - name: SUB2
        value: '0x3000'
      item_type: enum
      name: CiffDataType
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffEntry.h
    - enumerators:
      - name: BYTE
        value: '0x0000'
      - name: LONG
        value: '0x1800'
      - name: MIX
        value: '0x2000'
      - name: SHORT
        value: '0x1000'
      - name: ASCII
        value: '0x0800'
      - name: SUB1
        value: '0x2800'
      - name: SUB2
        value: '0x3000'
      item_type: enum
      name: CiffDataType
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffEntry.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CiffIFD::parseIFDEntry
  - rawspeed::CiffIFD::CiffIFD
  - rawspeed::CiffIFD::CiffIFD
  - rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
  - rawspeed::CiffIFD::checkSubIFDs
  - rawspeed::CiffIFD::recursivelyCheckSubIFDs
  - rawspeed::CiffIFD::add
  - rawspeed::CiffIFD::add
  - rawspeed::CiffIFD::getIFDsWithTagIf
  - rawspeed::CiffIFD::getEntryRecursiveIf
  - rawspeed::CiffIFD::getIFDsWithTag
  - rawspeed::CiffIFD::getIFDsWithTagWhere
  - rawspeed::CiffIFD::getIFDsWithTagWhere
  - rawspeed::RAWSPEED_READONLY::hasEntry
  - rawspeed::RAWSPEED_READONLY::hasEntryRecursive
  - rawspeed::CiffIFD::getEntry
  - rawspeed::CiffIFD::getEntryRecursive
  - rawspeed::CiffIFD::getEntryRecursiveWhere
  - rawspeed::CiffIFD::getEntryRecursiveWhere
  - rawspeed::CiffIFD::parseIFDEntry
  - rawspeed::CiffIFD::CiffIFD
  - rawspeed::CiffIFD::CiffIFD
  - rawspeed::CiffIFD::recursivelyIncrementSubIFDCount
  - rawspeed::CiffIFD::checkSubIFDs
  - rawspeed::CiffIFD::recursivelyCheckSubIFDs
  - rawspeed::CiffIFD::add
  - rawspeed::CiffIFD::add
  - rawspeed::CiffIFD::getIFDsWithTagIf
  - rawspeed::CiffIFD::getEntryRecursiveIf
  - rawspeed::CiffIFD::getIFDsWithTag
  - rawspeed::CiffIFD::getIFDsWithTagWhere
  - rawspeed::CiffIFD::getIFDsWithTagWhere
  - rawspeed::RAWSPEED_READONLY::hasEntry
  - rawspeed::RAWSPEED_READONLY::hasEntryRecursive
  - rawspeed::CiffIFD::getEntry
  - rawspeed::CiffIFD::getEntryRecursive
  - rawspeed::CiffIFD::getEntryRecursiveWhere
  - rawspeed::CiffIFD::getEntryRecursiveWhere
  source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiffIFD::anchor
  - rawspeed::TiffIFD::parseIFDEntry
  - rawspeed::TiffIFD::TiffIFD
  - rawspeed::TiffIFD::TiffIFD
  - rawspeed::TiffIFD::parseMakerNote
  - rawspeed::TiffIFD::getIFDsWithTag
  - rawspeed::TiffIFD::getIFDWithTag
  - rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
  - rawspeed::TiffIFD::checkSubIFDs
  - rawspeed::TiffIFD::recursivelyCheckSubIFDs
  - rawspeed::TiffIFD::add
  - rawspeed::TiffIFD::add
  - rawspeed::TiffIFD::getEntry
  - rawspeed::TiffRootIFD::anchor
  - rawspeed::TiffRootIFD::getID
  - rawspeed::TiffIFD::anchor
  - rawspeed::TiffIFD::parseIFDEntry
  - rawspeed::TiffIFD::TiffIFD
  - rawspeed::TiffIFD::TiffIFD
  - rawspeed::TiffIFD::parseMakerNote
  - rawspeed::TiffIFD::getIFDsWithTag
  - rawspeed::TiffIFD::getIFDWithTag
  - rawspeed::TiffIFD::recursivelyIncrementSubIFDCount
  - rawspeed::TiffIFD::checkSubIFDs
  - rawspeed::TiffIFD::recursivelyCheckSubIFDs
  - rawspeed::TiffIFD::add
  - rawspeed::TiffIFD::add
  - rawspeed::TiffIFD::getEntry
  - rawspeed::TiffRootIFD::anchor
  - rawspeed::TiffRootIFD::getID
  source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CiffEntry::CiffEntry
  - rawspeed::CiffEntry::Create
  - rawspeed::CiffEntry::getElementShift
  - rawspeed::RAWSPEED_READONLY::getElementSize
  - rawspeed::RAWSPEED_READONLY::isInt
  - rawspeed::CiffEntry::getU32
  - rawspeed::CiffEntry::getU16
  - rawspeed::CiffEntry::getByte
  - rawspeed::CiffEntry::getString
  - rawspeed::CiffEntry::getStrings
  - rawspeed::RAWSPEED_READONLY::isString
  - rawspeed::CiffEntry::CiffEntry
  - rawspeed::CiffEntry::Create
  - rawspeed::CiffEntry::getElementShift
  - rawspeed::RAWSPEED_READONLY::getElementSize
  - rawspeed::RAWSPEED_READONLY::isInt
  - rawspeed::CiffEntry::getU32
  - rawspeed::CiffEntry::getU16
  - rawspeed::CiffEntry::getByte
  - rawspeed::CiffEntry::getString
  - rawspeed::CiffEntry::getStrings
  - rawspeed::RAWSPEED_READONLY::isString
  source_file: /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiffEntry::anchor
  - rawspeed::TiffEntryWithData::anchor
  - rawspeed::TiffEntry::TiffEntry
  - rawspeed::TiffEntry::TiffEntry
  - rawspeed::TiffEntry::setData
  - rawspeed::TiffEntryWithData::TiffEntryWithData
  - rawspeed::RAWSPEED_READONLY::isInt
  - rawspeed::RAWSPEED_READONLY::isString
  - rawspeed::RAWSPEED_READONLY::isFloat
  - rawspeed::RAWSPEED_READONLY::isRational
  - rawspeed::RAWSPEED_READONLY::isSRational
  - rawspeed::TiffEntry::getByte
  - rawspeed::TiffEntry::getU16
  - rawspeed::TiffEntry::getI16
  - rawspeed::TiffEntry::getU32
  - rawspeed::TiffEntry::getI32
  - rawspeed::TiffEntry::getRational
  - rawspeed::TiffEntry::getSRational
  - rawspeed::TiffEntry::getFloat
  - rawspeed::TiffEntry::getString
  - rawspeed::TiffEntry::getRootIfdData
  - rawspeed::TiffEntry::anchor
  - rawspeed::TiffEntryWithData::anchor
  - rawspeed::TiffEntry::TiffEntry
  - rawspeed::TiffEntry::TiffEntry
  - rawspeed::TiffEntry::setData
  - rawspeed::TiffEntryWithData::TiffEntryWithData
  - rawspeed::RAWSPEED_READONLY::isInt
  - rawspeed::RAWSPEED_READONLY::isString
  - rawspeed::RAWSPEED_READONLY::isFloat
  - rawspeed::RAWSPEED_READONLY::isRational
  - rawspeed::RAWSPEED_READONLY::isSRational
  - rawspeed::TiffEntry::getByte
  - rawspeed::TiffEntry::getU16
  - rawspeed::TiffEntry::getI16
  - rawspeed::TiffEntry::getU32
  - rawspeed::TiffEntry::getI32
  - rawspeed::TiffEntry::getRational
  - rawspeed::TiffEntry::getSRational
  - rawspeed::TiffEntry::getFloat
  - rawspeed::TiffEntry::getString
  - rawspeed::TiffEntry::getRootIfdData
  source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Depth
        type: int
      - name: SubIFDCount
        type: int
      - name: RecursiveSubIFDCount
        type: int
      item_type: struct
      name: Limits
      pos:
        line_end: 74
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.h
    - fields:
      - name: Depth
        type: int
      - name: SubIFDCount
        type: int
      - name: RecursiveSubIFDCount
        type: int
      item_type: struct
      name: Limits
      pos:
        line_end: 74
        line_start: 58
        source_file: /src/librawspeed/src/librawspeed/tiff/CiffIFD.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/tiff/TiffTag.h
  types:
    enum:
    - enumerators:
      - name: YCBCRSUBSAMPLING
        value: '0x0212'
      - name: OPCODELIST3
        value: '0xC742'
      - name: EXPOSUREPROGRAM
        value: '0x8822'
      - name: FOCALLENGTH
        value: '0x920A'
      - name: PANASONIC_V8_INIT_PRED_BLUE
        value: '0x003f'
      - name: BRIGHTNESSVALUE
        value: '0x9203'
      - name: DNGVERSION
        value: '0xC612'
      - name: ORIGINALRAWFILEDIGEST
        value: '0xC71D'
      - name: ANTIALIASSTRENGTH
        value: '0xC632'
      - name: PANASONIC_V8_STRIP_HEIGHT
        value: '0x0037'
      - name: STRIPBYTECOUNTS
        value: '0x0117'
      - name: SUBSECTIMEDIGITIZED
        value: '0x9292'
      - name: ANALOGBALANCE
        value: '0xC627'
      - name: SUBFILETYPE
        value: '0x00FF'
      - name: TILELENGTH
        value: '0x0143'
      - name: SMAXSAMPLEVALUE
        value: '0x0155'
      - name: PANASONIC_V8_STRIP_DATA_SIZE
        value: '0x0046'
      - name: IMAGEWIDTH
        value: '0x0100'
      - name: DATETIME
        value: '0x0132'
      - name: SONYRAWIMAGESIZE
        value: '0x7038'
      - name: FUJI_BLACKLEVEL
        value: '0xF00A'
      - name: JPEGRESTARTINTERVAL
        value: '0x0203'
      - name: SHARPNESS
        value: '0xA40A'
      - name: ASSHOTNEUTRAL
        value: '0xC628'
      - name: CALIBRATIONILLUMINANT2
        value: '0xC65B'
      - name: CAMERACALIBRATIONSIGNATURE
        value: '0xC6F3'
      - name: PANASONIC_SENSORTOPBORDER
        value: '0x0004'
      - name: EXIFVERSION
        value: '0x9000'
      - name: SUBJECTAREA
        value: '0x9214'
      - name: PREVIEWAPPLICATIONNAME
        value: '0xC716'
      - name: PANASONIC_WHITEBALANCE_S2G
        value: '0x0025'
      - name: BITSPERSAMPLE
        value: '0x0102'
      - name: MODEL
        value: '0x0110'
      - name: MASKEDAREAS
        value: 0XC68E
      - name: KODAK_KDC_HEIGHT
        value: '0xFD01'
      - name: PROFILEHUESATMAPDATA1
        value: '0xC6FA'
      - name: PANASONIC_WHITEBALANCE_SR
        value: '0x0011'
      - name: WHITELEVEL
        value: '0xC61D'
      - name: RAWIMAGEDIGEST
        value: '0xC71C'
      - name: PANASONIC_CROP_RIGHT
        value: '0x0032'
      - name: SOFTWARE
        value: '0x0131'
      - name: JPEGQTABLES
        value: '0x0207'
      - name: APERTUREVALUE
        value: '0x9202'
      - name: KODAKKDCPRIVATEIFD
        value: 0XFE00
      - name: PANASONIC_HEIGHT
        value: '0x0003'
      - name: FORWARDMATRIX2
        value: '0xC715'
      - name: PANASONIC_WHITEBALANCE_S2R
        value: '0x0024'
      - name: FUJI_RAWIMAGECROPPEDSIZE
        value: '0x0111'
      - name: DOTRANGE
        value: '0x0150'
      - name: OLYMPUSIMAGEPROCESSING
        value: '0x2040'
      - name: RECOMMENDEDEXPOSUREINDEX
        value: '0x8832'
      - name: REDUCTIONMATRIX2
        value: '0xC626'
      - name: CANON_RAW_DATA_OFFSET
        value: '0x0081'
      - name: LEAFMETADATA
        value: '0x8606'
      - name: SECURITYCLASSIFICATION
        value: '0x9212'
      - name: PANASONIC_V8_STRIP_LINE_OFFSETS
        value: '0x0045'
      - name: BLACKLEVELDELTAH
        value: '0xC61B'
      - name: OPCODELIST2
        value: '0xC741'
      - name: SONYKEY
        value: '0x7221'
      - name: FLASH
        value: '0x9209'
      - name: PANASONIC_V8_INIT_PRED_GREEN2
        value: '0x003e'
      - name: SUBJECTLOCATION
        value: '0xA214'
      - name: SATURATION
        value: '0xA409'
      - name: FILLORDER
        value: '0x010A'
      - name: KODAKWB
        value: '0x0F00'
      - name: RESOLUTIONUNIT
        value: '0x0128'
      - name: SONYWHITELEVEL
        value: '0x787F'
      - name: IMAGEHISTORY
        value: '0x9213'
      - name: CALIBRATIONILLUMINANT1
        value: '0xC65A'
      - name: ROTATION
        value: '0x82B9'
      - name: SAMSUNG_WB_RGGBLEVELSUNCORRECTED
        value: '0xa021'
      - name: EXPOSUREMODE
        value: '0xA402'
      - name: BLACKLEVELDELTAV
        value: '0xC61C'
      - name: PROFILEHUESATMAPDIMS
        value: '0xC6F9'
      - name: PANASONIC_COMPRESSION
        value: '0x000b'
      - name: ACTIVEAREA
        value: 0XC68D
      - name: KODAK_KDC_WIDTH
        value: '0xFD00'
      - name: WHITEPOINT
        value: '0x013E'
      - name: CANON_UNCOMPRESSED
        value: '0xC5D9'
      - name: CHROMABLURRADIUS
        value: '0xC631'
      - name: FUJI_STRIPBYTECOUNTS
        value: '0xF008'
      - name: SMINSAMPLEVALUE
        value: '0x0154'
      - name: INTEROPERABILITYVERSION
        value: '0x0002'
      - name: TILEWIDTH
        value: '0x0142'
      - name: IPTCNAA
        value: '0x83BB'
      - name: IMAGENAME
        value: '0x9211'
      - name: CANON_SENSOR_INFO
        value: '0x00E0'
      - name: COLORIMETRICREFERENCE
        value: 0XC6BF
      - name: PANASONIC_WIDTH
        value: '0x0002'
      - name: OECF
        value: '0x8828'
      - name: FORWARDMATRIX1
        value: '0xC714'
      - name: PANASONIC_BLACKLEVEL_BLUE
        value: '0x001e'
      - name: IMAGELENGTH
        value: '0x0101'
      - name: MAKE
        value: '0x010F'
      - name: RELATEDIMAGEWIDTH
        value: '0x1001'
      - name: INTERCOLORPROFILE
        value: '0x8773'
      - name: BLACKLEVEL
        value: '0xC61A'
      - name: ORIGINALRAWFILEDATA
        value: 0XC68C
      - name: KODAK_KDC_OFFSET
        value: '0xFD04'
      - name: PROFILENAME
        value: '0xC6F8'
      - name: PANASONIC_BITSPERSAMPLE
        value: '0x000a'
      - name: YCBCRCOEFFICIENTS
        value: '0x0211'
      - name: LIGHTSOURCE
        value: '0x9208'
      - name: OPCODELIST1
        value: '0xC740'
      - name: PANASONIC_V8_INIT_PRED_GREEN1
        value: '0x003d'
      - name: SHUTTERSPEEDVALUE
        value: '0x9201'
      - name: XMP
        value: '0x02BC'
      - name: PREVIEWDATETIME
        value: '0xC71B'
      - name: PANASONIC_CROP_BOTTOM
        value: '0x0031'
      - name: CAMERASERIALNUMBER
        value: '0xC62F'
      - name: PLANARCONFIGURATION
        value: '0x011C'
      - name: CLIPPATH
        value: '0x0157'
      - name: SUBIFDS
        value: '0x014A'
      - name: INTEROPERABILITYIFDPOINTER
        value: '0xA005'
      - name: CUSTOMRENDERED
        value: '0xA401'
      - name: BATTERYLEVEL
        value: '0x828F'
      - name: SUBSECTIMEORIGINAL
        value: '0x9291'
      - name: FUJI_RAFDATA
        value: '0xC000'
      - name: LENSINFO
        value: '0xC630'
      - name: SONYCURVE
        value: '0x7010'
      - name: FUJI_STRIPOFFSETS
        value: '0xF007'
      - name: REDUCTIONMATRIX1
        value: '0xC625'
      - name: JPEGINTERCHANGEFORMATLENGTH
        value: '0x0202'
      - name: FOCALPLANERESOLUTIONUNIT
        value: '0xA210'
      - name: CONTRAST
        value: '0xA408'
      - name: NOISEREDUCTIONAPPLIED
        value: '0xC6F7'
      - name: PANASONIC_CFAPATTERN
        value: '0x0009'
      - name: YRESOLUTION
        value: '0x011B'
      - name: PREDICTOR
        value: '0x013D'
      - name: ORIGINALRAWFILENAME
        value: 0XC68B
      - name: KODAK_KDC_WB
        value: '0xFA2A'
      - name: GAMMA
        value: '0xA500'
      - name: LINEARRESPONSELIMIT
        value: '0xC62E'
      - name: FUJI_BITSPERSAMPLE
        value: '0xF003'
      - name: PREVIEWCOLORSPACE
        value: '0xC71A'
      - name: PANASONIC_CROP_LEFT
        value: '0x0030'
      - name: MAKERNOTE_ALT
        value: '0x2e'
      - name: JPEGPOINTTRANSFORMS
        value: '0x0206'
      - name: COMPRESSEDBITSPERPIXEL
        value: '0x9102'
      - name: PANASONIC_BLACKLEVEL_GREEN
        value: '0x001d'
      - name: CAMERACALIBRATION1
        value: '0xC623'
      - name: CANON_CAMERA_SETTINGS
        value: '0x0001'
      - name: INKNAMES
        value: '0x014D'
      - name: OLYMPUSBLUEMULTIPLIER
        value: '0x1018'
      - name: ISOSPEEDRATINGS
        value: '0x8827'
      - name: CURRENTPREPROFILEMATRIX
        value: 0XC692
      - name: NIKON_BLACKLEVEL
        value: '0x003D'
      - name: PROFILECOPYRIGHT
        value: '0xC6FE'
      - name: ROWSPERSTRIP
        value: '0x0116'
      - name: EXTRASAMPLES
        value: '0x0152'
      - name: SUBSECTIME
        value: '0x9290'
      - name: CAMERACALIBRATION2
        value: '0xC624'
      - name: CANONPOWERSHOTG9WB
        value: '0x0029'
      - name: PANASONIC_V8_STRIP_BYTE_OFFSETS
        value: '0x0044'
      - name: T6OPTIONS
        value: '0x0125'
      - name: SONYBLACKLEVEL
        value: '0x7310'
      - name: FOCALPLANERESOLUTIONUNIT_TIFFEP
        value: '0x9210'
      - name: FOCALPLANEYRESOLUTION
        value: '0xA20F'
      - name: GAINCONTROL
        value: '0xA407'
      - name: BLACKLEVELREPEATDIM
        value: '0xC619'
      - name: INTEROPERABILITYINDEX
        value: '0x0001'
      - name: FUJI_RAWIMAGEFULLSIZE
        value: '0x0100'
      - name: SONYLENGTH
        value: '0x7201'
      - name: FNUMBER
        value: '0x829D'
      - name: RELATEDSOUNDFILE
        value: '0xA004'
      - name: EXIFCFAPATTERN
        value: '0xA302'
      - name: FUJI_LAYOUT
        value: '0x0130'
      - name: CFAPATTERN
        value: '0x828E'
      - name: FUJI_RAWIMAGEFULLHEIGHT
        value: '0xF002'
      - name: IMAGEUNIQUEID
        value: '0xA420'
      - name: JPEGINTERCHANGEFORMAT
        value: '0x0201'
      - name: FOCALPLANEXRESOLUTION
        value: '0xA20E'
      - name: SCENECAPTURETYPE
        value: '0xA406'
      - name: COLORMATRIX2
        value: '0xC622'
      - name: CANON_SRAWQUALITY
        value: '0x002E'
      - name: KODAK_IFD2
        value: '0xFE00'
      - name: HALFTONEHINTS
        value: '0x0141'
      - name: SONYRGGBLEVELS
        value: '0x7313'
      - name: FOCALPLANEXRESOLUTION_TIFFEP
        value: '0x920E'
      - name: PROFILEEMBEDPOLICY
        value: '0xC6FD'
      - name: PANASONIC_BLACKLEVEL_RED
        value: '0x001c'
      - name: CURRENTICCPROFILE
        value: 0XC691
      - name: EXIFIFDPOINTER
        value: '0x8769'
      - name: KODAK_LINEARIZATION
        value: '0x090D'
      - name: RAWDATAUNIQUEID
        value: 0XC65D
      - name: ASSHOTPROFILENAME
        value: '0xC6F6'
      - name: PANASONIC_SENSORRIGHTBORDER
        value: '0x0007'
      - name: CFALAYOUT
        value: '0xC617'
      - name: PHOTOMETRICINTERPRETATION
        value: '0x0106'
      - name: STRIPOFFSETS
        value: '0x0111'
      - name: REFERENCEBLACKWHITE
        value: '0x0214'
      - name: FOCALPLANEYRESOLUTION_TIFFEP
        value: '0x920F'
      - name: PANASONIC_V8_NUMBER_OF_STRIPS_V
        value: '0x0043'
      - name: TILEBYTECOUNTS
        value: '0x0145'
      - name: METERINGMODE
        value: '0x9207'
      - name: LINEARIZATIONTABLE
        value: '0xC618'
      - name: PROFILELOOKTABLEDATA
        value: '0xC726'
      - name: PANASONIC_V8_INIT_PRED_RED
        value: '0x003c'
      - name: PIXELYDIMENSION
        value: '0xA003'
      - name: SCENETYPE
        value: '0xA301'
      - name: BAYERGREESPIT
        value: '0xC62D'
      - name: USERCOMMENT
        value: '0x9286'
      - name: PANASONIC_STRIPOFFSET
        value: '0x118'
      - name: FOCALLENGTHIN35MMFILM
        value: '0xA405'
      - name: T4OPTIONS
        value: '0x0124'
      - name: GPSINFOIFDPOINTER
        value: '0x8825'
      - name: NOISE
        value: '0x920D'
      - name: SPATIALFREQUENCYRESPONSE
        value: '0xA20C'
      - name: SHADOWSCALE
        value: 0XC633
      - name: FILESOURCE
        value: '0xA300'
      - name: ARTIST
        value: '0x013B'
      - name: EXPOSURETIME
        value: '0x829A'
      - name: PIXELXDIMENSION
        value: '0xA002'
      - name: CFAPLANECOLOR
        value: '0xC616'
      - name: KODAK_IFD
        value: '0x8290'
      - name: EXTRACAMERAPROFILES
        value: '0xC6F5'
      - name: PANASONIC_SENSORBOTTOMBORDER
        value: '0x0006'
      - name: SUBJECTDISTANCERANGE
        value: '0xA40C'
      - name: BASELINENOISE
        value: '0xC62B'
      - name: FUJI_RAWIMAGEFULLWIDTH
        value: '0xF001'
      - name: JPEGLOSSLESSPREDICTORS
        value: '0x0205'
      - name: TARGETPRINTER
        value: '0x0151'
      - name: SENSINGMETHOD_TIFFEP
        value: '0x9217'
      - name: SUBJECTDISTANCE
        value: '0x9206'
      - name: PROFILELOOKTABLEDIMS
        value: '0xC725'
      - name: IMAGEDESCRIPTION
        value: '0x010E'
      - name: SAMPLEFORMAT
        value: '0x0153'
      - name: TILEOFFSETS
        value: '0x0144'
      - name: JPEGACTABLES
        value: '0x0209'
      - name: PANASONIC_V8_CLIP_VAL
        value: '0x003b'
      - name: PREVIEWSETTINGSDIGEST
        value: '0xC719'
      - name: PANASONIC_JPEG_DATA
        value: '0x002e'
      - name: BASELINESHARPNESS
        value: '0xC62C'
      - name: CANONCOLORDATA
        value: '0x4001'
      - name: COMPONENTSCONFIGURATION
        value: '0x9101'
      - name: MAKERNOTE
        value: '0x927C'
      - name: SAMPLESPERPIXEL
        value: '0x0115'
      - name: PANASONIC_V8_STRIP_WIDTH
        value: '0x0064'
      - name: COLORMATRIX1
        value: '0xC621'
      - name: CANON_SRAWTYPE
        value: '0xC6C5'
      - name: FUJI_RAWIMAGECROPTOPLEFT
        value: '0x0110'
      - name: TILEINDEX
        value: '0x82BB'
      - name: PANASONIC_V8_NUMBER_OF_STRIPS_H
        value: '0x0042'
      - name: NEWSUBFILETYPE
        value: '0x00FE'
      - name: XRESOLUTION
        value: '0x011A'
      - name: TRANSFERRANGE
        value: '0x0156'
      - name: SONYOFFSET
        value: '0x7200'
      - name: COLORSPACE
        value: '0xA001'
      - name: SENSINGMETHOD
        value: '0xA217'
      - name: TIFFEPSTANDARDID
        value: '0x9216'
      - name: BASELINEEXPOSURE
        value: '0xC62A'
      - name: PANASONIC_V8_STRIP_HEIGHTS
        value: '0x0048'
      - name: TRANSFERFUNCTION
        value: '0x012D'
      - name: CFAREPEATPATTERNDIM
        value: '0x828D'
      - name: DEVICESETTINGDESCRIPTION
        value: '0xA40B'
      - name: FUJI_RAW_IFD
        value: '0xF000'
      - name: DEFAULTCROPORIGIN
        value: '0xC61F'
      - name: PRIMARYCHROMATICITIES
        value: '0x013F'
      - name: FLASHENERGY
        value: '0xA20B'
      - name: DIGITALZOOMRATIO
        value: '0xA404'
      - name: DATETIMEDIGITIZED
        value: '0x9004'
      - name: PREVIEWSETTINGSNAME
        value: '0xC718'
      - name: PANASONIC_RAWFORMAT
        value: '0x002d'
      - name: FUJIOLDWB
        value: '0x2ff0'
      - name: PROFILETONECURVE
        value: '0xC6FC'
      - name: PANASONIC_ISO_SPEED
        value: '0x0017'
      - name: JPEGPROC
        value: '0x0200'
      - name: YCBCRPOSITIONING
        value: '0x0213'
      - name: OLYMPUSREDMULTIPLIER
        value: '0x1017'
      - name: DEFAULTCROPSIZE
        value: '0xC620'
      - name: ASSHOTPREPROFILEMATRIX
        value: 0XC690
      - name: KODAK_KDC_SENSOR_HEIGHT
        value: '0xFA14'
      - name: CANONCR2SLICE
        value: '0xC640'
      - name: COMPRESSION
        value: '0x0103'
      - name: NUMBEROFINKS
        value: '0x014E'
      - name: SPECTRALSENSITIVITY
        value: '0x8824'
      - name: SPACIALFREQUENCYRESPONSE
        value: '0x920C'
      - name: PANASONIC_V8_HUF_SHIFT_DOWN
        value: '0x0041'
      - name: LOCALIZEDCAMERAMODEL
        value: '0xC615'
      - name: ROWINTERLEAVEFACTOR
        value: '0xC71F'
      - name: JPEGDCTABLES
        value: '0x0208'
      - name: RELATEDIMAGEFILEFORMAT
        value: '0x1000'
      - name: MAXAPERTUREVALUE
        value: '0x9205'
      - name: BESTQUALITYSCALE
        value: '0xC65C'
      - name: PANASONIC_V8_GAMMA_POINTS
        value: '0x003a'
      - name: ORIENTATION
        value: '0x0112'
      - name: EXPOSUREINDEX_TIFFEP
        value: '0x9215'
      - name: PIMIFDPOINTER
        value: '0xC4A5'
      - name: PANASONIC_V8_STRIP_WIDTHS
        value: '0x0047'
      - name: DEFAULTSCALE
        value: '0xC61E'
      - name: NOISEPROFILE
        value: '0xC761'
      - name: GRAYRESPONSECURVE
        value: '0x0123'
      - name: JPEGTABLES
        value: '0x015B'
      - name: FLASHENERGY_TIFFEP
        value: '0x920B'
      - name: PANASONIC_V8_HUF_TABLE
        value: '0x0040'
      - name: SAMSUNG_WB_RGGBLEVELSBLACK
        value: '0xa028'
      - name: RELATEDIMAGELENGTH
        value: '0x1002'
      - name: INKSET
        value: '0x014C'
      - name: SONYGRBGLEVELS
        value: '0x7303'
      - name: NAVYCOMPRESSION
        value: '0x82BA'
      - name: WHITEBALANCE
        value: '0xA403'
      - name: EXPOSUREINDEX
        value: '0xA215'
      - name: DNGBACKWARDVERSION
        value: '0xC613'
      - name: COPYRIGHT
        value: '0x8298'
      - name: PHOTOSHOPPRIVATE
        value: '0x8649'
      - name: FLASHPIXVERSION
        value: '0xA000'
      - name: DNGPRIVATEDATA
        value: '0xC634'
      - name: ASSHOTICCPROFILE
        value: 0XC68F
      - name: KODAK_KDC_SENSOR_WIDTH
        value: '0xFA13'
      - name: PROFILEHUESATMAPDATA2
        value: '0xC6FB'
      - name: PANASONIC_WHITEBALANCE_SB
        value: '0x0012'
      - name: MAKERNOTESAFETY
        value: '0xC635'
      - name: FUJI_WB_GRBLEVELS
        value: '0xF00E'
      - name: PROFILECALIBRATIONSIGNATURE
        value: '0xC6F4'
      - name: PANASONIC_SENSORLEFTBORDER
        value: '0x0005'
      - name: EPSONWB
        value: '0x0E80'
      - name: UNIQUECAMERAMODEL
        value: '0xC614'
      - name: SUBTILEBLOCKSIZE
        value: '0xC71E'
      - name: CANONSHOTINFO
        value: '0x0004'
      - name: DOCUMENTNAME
        value: '0x010D'
      - name: EXPOSUREBIASVALUE
        value: '0x9204'
      - name: PANASONIC_V8_GAMMA_SLOPES
        value: '0x0039'
      - name: ASSHOTWHITEXY
        value: '0xC629'
      - name: PANASONIC_WHITEBALANCE_S2B
        value: '0x0026'
      - name: PREVIEWAPPLICATIONVERSION
        value: '0xC717'
      - name: DATETIMEORIGINAL
        value: '0x9003'
      item_type: enum
      name: TiffTag
      pos:
        line_end: 412
        line_start: 31
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffTag.h
    - enumerators:
      - name: YCBCRSUBSAMPLING
        value: '0x0212'
      - name: OPCODELIST3
        value: '0xC742'
      - name: EXPOSUREPROGRAM
        value: '0x8822'
      - name: FOCALLENGTH
        value: '0x920A'
      - name: PANASONIC_V8_INIT_PRED_BLUE
        value: '0x003f'
      - name: BRIGHTNESSVALUE
        value: '0x9203'
      - name: DNGVERSION
        value: '0xC612'
      - name: ORIGINALRAWFILEDIGEST
        value: '0xC71D'
      - name: ANTIALIASSTRENGTH
        value: '0xC632'
      - name: PANASONIC_V8_STRIP_HEIGHT
        value: '0x0037'
      - name: STRIPBYTECOUNTS
        value: '0x0117'
      - name: SUBSECTIMEDIGITIZED
        value: '0x9292'
      - name: ANALOGBALANCE
        value: '0xC627'
      - name: SUBFILETYPE
        value: '0x00FF'
      - name: TILELENGTH
        value: '0x0143'
      - name: SMAXSAMPLEVALUE
        value: '0x0155'
      - name: PANASONIC_V8_STRIP_DATA_SIZE
        value: '0x0046'
      - name: IMAGEWIDTH
        value: '0x0100'
      - name: DATETIME
        value: '0x0132'
      - name: SONYRAWIMAGESIZE
        value: '0x7038'
      - name: FUJI_BLACKLEVEL
        value: '0xF00A'
      - name: JPEGRESTARTINTERVAL
        value: '0x0203'
      - name: SHARPNESS
        value: '0xA40A'
      - name: ASSHOTNEUTRAL
        value: '0xC628'
      - name: CALIBRATIONILLUMINANT2
        value: '0xC65B'
      - name: CAMERACALIBRATIONSIGNATURE
        value: '0xC6F3'
      - name: PANASONIC_SENSORTOPBORDER
        value: '0x0004'
      - name: EXIFVERSION
        value: '0x9000'
      - name: SUBJECTAREA
        value: '0x9214'
      - name: PREVIEWAPPLICATIONNAME
        value: '0xC716'
      - name: PANASONIC_WHITEBALANCE_S2G
        value: '0x0025'
      - name: BITSPERSAMPLE
        value: '0x0102'
      - name: MODEL
        value: '0x0110'
      - name: MASKEDAREAS
        value: 0XC68E
      - name: KODAK_KDC_HEIGHT
        value: '0xFD01'
      - name: PROFILEHUESATMAPDATA1
        value: '0xC6FA'
      - name: PANASONIC_WHITEBALANCE_SR
        value: '0x0011'
      - name: WHITELEVEL
        value: '0xC61D'
      - name: RAWIMAGEDIGEST
        value: '0xC71C'
      - name: PANASONIC_CROP_RIGHT
        value: '0x0032'
      - name: SOFTWARE
        value: '0x0131'
      - name: JPEGQTABLES
        value: '0x0207'
      - name: APERTUREVALUE
        value: '0x9202'
      - name: KODAKKDCPRIVATEIFD
        value: 0XFE00
      - name: PANASONIC_HEIGHT
        value: '0x0003'
      - name: FORWARDMATRIX2
        value: '0xC715'
      - name: PANASONIC_WHITEBALANCE_S2R
        value: '0x0024'
      - name: FUJI_RAWIMAGECROPPEDSIZE
        value: '0x0111'
      - name: DOTRANGE
        value: '0x0150'
      - name: OLYMPUSIMAGEPROCESSING
        value: '0x2040'
      - name: RECOMMENDEDEXPOSUREINDEX
        value: '0x8832'
      - name: REDUCTIONMATRIX2
        value: '0xC626'
      - name: CANON_RAW_DATA_OFFSET
        value: '0x0081'
      - name: LEAFMETADATA
        value: '0x8606'
      - name: SECURITYCLASSIFICATION
        value: '0x9212'
      - name: PANASONIC_V8_STRIP_LINE_OFFSETS
        value: '0x0045'
      - name: BLACKLEVELDELTAH
        value: '0xC61B'
      - name: OPCODELIST2
        value: '0xC741'
      - name: SONYKEY
        value: '0x7221'
      - name: FLASH
        value: '0x9209'
      - name: PANASONIC_V8_INIT_PRED_GREEN2
        value: '0x003e'
      - name: SUBJECTLOCATION
        value: '0xA214'
      - name: SATURATION
        value: '0xA409'
      - name: FILLORDER
        value: '0x010A'
      - name: KODAKWB
        value: '0x0F00'
      - name: RESOLUTIONUNIT
        value: '0x0128'
      - name: SONYWHITELEVEL
        value: '0x787F'
      - name: IMAGEHISTORY
        value: '0x9213'
      - name: CALIBRATIONILLUMINANT1
        value: '0xC65A'
      - name: ROTATION
        value: '0x82B9'
      - name: SAMSUNG_WB_RGGBLEVELSUNCORRECTED
        value: '0xa021'
      - name: EXPOSUREMODE
        value: '0xA402'
      - name: BLACKLEVELDELTAV
        value: '0xC61C'
      - name: PROFILEHUESATMAPDIMS
        value: '0xC6F9'
      - name: PANASONIC_COMPRESSION
        value: '0x000b'
      - name: ACTIVEAREA
        value: 0XC68D
      - name: KODAK_KDC_WIDTH
        value: '0xFD00'
      - name: WHITEPOINT
        value: '0x013E'
      - name: CANON_UNCOMPRESSED
        value: '0xC5D9'
      - name: CHROMABLURRADIUS
        value: '0xC631'
      - name: FUJI_STRIPBYTECOUNTS
        value: '0xF008'
      - name: SMINSAMPLEVALUE
        value: '0x0154'
      - name: INTEROPERABILITYVERSION
        value: '0x0002'
      - name: TILEWIDTH
        value: '0x0142'
      - name: IPTCNAA
        value: '0x83BB'
      - name: IMAGENAME
        value: '0x9211'
      - name: CANON_SENSOR_INFO
        value: '0x00E0'
      - name: COLORIMETRICREFERENCE
        value: 0XC6BF
      - name: PANASONIC_WIDTH
        value: '0x0002'
      - name: OECF
        value: '0x8828'
      - name: FORWARDMATRIX1
        value: '0xC714'
      - name: PANASONIC_BLACKLEVEL_BLUE
        value: '0x001e'
      - name: IMAGELENGTH
        value: '0x0101'
      - name: MAKE
        value: '0x010F'
      - name: RELATEDIMAGEWIDTH
        value: '0x1001'
      - name: INTERCOLORPROFILE
        value: '0x8773'
      - name: BLACKLEVEL
        value: '0xC61A'
      - name: ORIGINALRAWFILEDATA
        value: 0XC68C
      - name: KODAK_KDC_OFFSET
        value: '0xFD04'
      - name: PROFILENAME
        value: '0xC6F8'
      - name: PANASONIC_BITSPERSAMPLE
        value: '0x000a'
      - name: YCBCRCOEFFICIENTS
        value: '0x0211'
      - name: LIGHTSOURCE
        value: '0x9208'
      - name: OPCODELIST1
        value: '0xC740'
      - name: PANASONIC_V8_INIT_PRED_GREEN1
        value: '0x003d'
      - name: SHUTTERSPEEDVALUE
        value: '0x9201'
      - name: XMP
        value: '0x02BC'
      - name: PREVIEWDATETIME
        value: '0xC71B'
      - name: PANASONIC_CROP_BOTTOM
        value: '0x0031'
      - name: CAMERASERIALNUMBER
        value: '0xC62F'
      - name: PLANARCONFIGURATION
        value: '0x011C'
      - name: CLIPPATH
        value: '0x0157'
      - name: SUBIFDS
        value: '0x014A'
      - name: INTEROPERABILITYIFDPOINTER
        value: '0xA005'
      - name: CUSTOMRENDERED
        value: '0xA401'
      - name: BATTERYLEVEL
        value: '0x828F'
      - name: SUBSECTIMEORIGINAL
        value: '0x9291'
      - name: FUJI_RAFDATA
        value: '0xC000'
      - name: LENSINFO
        value: '0xC630'
      - name: SONYCURVE
        value: '0x7010'
      - name: FUJI_STRIPOFFSETS
        value: '0xF007'
      - name: REDUCTIONMATRIX1
        value: '0xC625'
      - name: JPEGINTERCHANGEFORMATLENGTH
        value: '0x0202'
      - name: FOCALPLANERESOLUTIONUNIT
        value: '0xA210'
      - name: CONTRAST
        value: '0xA408'
      - name: NOISEREDUCTIONAPPLIED
        value: '0xC6F7'
      - name: PANASONIC_CFAPATTERN
        value: '0x0009'
      - name: YRESOLUTION
        value: '0x011B'
      - name: PREDICTOR
        value: '0x013D'
      - name: ORIGINALRAWFILENAME
        value: 0XC68B
      - name: KODAK_KDC_WB
        value: '0xFA2A'
      - name: GAMMA
        value: '0xA500'
      - name: LINEARRESPONSELIMIT
        value: '0xC62E'
      - name: FUJI_BITSPERSAMPLE
        value: '0xF003'
      - name: PREVIEWCOLORSPACE
        value: '0xC71A'
      - name: PANASONIC_CROP_LEFT
        value: '0x0030'
      - name: MAKERNOTE_ALT
        value: '0x2e'
      - name: JPEGPOINTTRANSFORMS
        value: '0x0206'
      - name: COMPRESSEDBITSPERPIXEL
        value: '0x9102'
      - name: PANASONIC_BLACKLEVEL_GREEN
        value: '0x001d'
      - name: CAMERACALIBRATION1
        value: '0xC623'
      - name: CANON_CAMERA_SETTINGS
        value: '0x0001'
      - name: INKNAMES
        value: '0x014D'
      - name: OLYMPUSBLUEMULTIPLIER
        value: '0x1018'
      - name: ISOSPEEDRATINGS
        value: '0x8827'
      - name: CURRENTPREPROFILEMATRIX
        value: 0XC692
      - name: NIKON_BLACKLEVEL
        value: '0x003D'
      - name: PROFILECOPYRIGHT
        value: '0xC6FE'
      - name: ROWSPERSTRIP
        value: '0x0116'
      - name: EXTRASAMPLES
        value: '0x0152'
      - name: SUBSECTIME
        value: '0x9290'
      - name: CAMERACALIBRATION2
        value: '0xC624'
      - name: CANONPOWERSHOTG9WB
        value: '0x0029'
      - name: PANASONIC_V8_STRIP_BYTE_OFFSETS
        value: '0x0044'
      - name: T6OPTIONS
        value: '0x0125'
      - name: SONYBLACKLEVEL
        value: '0x7310'
      - name: FOCALPLANERESOLUTIONUNIT_TIFFEP
        value: '0x9210'
      - name: FOCALPLANEYRESOLUTION
        value: '0xA20F'
      - name: GAINCONTROL
        value: '0xA407'
      - name: BLACKLEVELREPEATDIM
        value: '0xC619'
      - name: INTEROPERABILITYINDEX
        value: '0x0001'
      - name: FUJI_RAWIMAGEFULLSIZE
        value: '0x0100'
      - name: SONYLENGTH
        value: '0x7201'
      - name: FNUMBER
        value: '0x829D'
      - name: RELATEDSOUNDFILE
        value: '0xA004'
      - name: EXIFCFAPATTERN
        value: '0xA302'
      - name: FUJI_LAYOUT
        value: '0x0130'
      - name: CFAPATTERN
        value: '0x828E'
      - name: FUJI_RAWIMAGEFULLHEIGHT
        value: '0xF002'
      - name: IMAGEUNIQUEID
        value: '0xA420'
      - name: JPEGINTERCHANGEFORMAT
        value: '0x0201'
      - name: FOCALPLANEXRESOLUTION
        value: '0xA20E'
      - name: SCENECAPTURETYPE
        value: '0xA406'
      - name: COLORMATRIX2
        value: '0xC622'
      - name: CANON_SRAWQUALITY
        value: '0x002E'
      - name: KODAK_IFD2
        value: '0xFE00'
      - name: HALFTONEHINTS
        value: '0x0141'
      - name: SONYRGGBLEVELS
        value: '0x7313'
      - name: FOCALPLANEXRESOLUTION_TIFFEP
        value: '0x920E'
      - name: PROFILEEMBEDPOLICY
        value: '0xC6FD'
      - name: PANASONIC_BLACKLEVEL_RED
        value: '0x001c'
      - name: CURRENTICCPROFILE
        value: 0XC691
      - name: EXIFIFDPOINTER
        value: '0x8769'
      - name: KODAK_LINEARIZATION
        value: '0x090D'
      - name: RAWDATAUNIQUEID
        value: 0XC65D
      - name: ASSHOTPROFILENAME
        value: '0xC6F6'
      - name: PANASONIC_SENSORRIGHTBORDER
        value: '0x0007'
      - name: CFALAYOUT
        value: '0xC617'
      - name: PHOTOMETRICINTERPRETATION
        value: '0x0106'
      - name: STRIPOFFSETS
        value: '0x0111'
      - name: REFERENCEBLACKWHITE
        value: '0x0214'
      - name: FOCALPLANEYRESOLUTION_TIFFEP
        value: '0x920F'
      - name: PANASONIC_V8_NUMBER_OF_STRIPS_V
        value: '0x0043'
      - name: TILEBYTECOUNTS
        value: '0x0145'
      - name: METERINGMODE
        value: '0x9207'
      - name: LINEARIZATIONTABLE
        value: '0xC618'
      - name: PROFILELOOKTABLEDATA
        value: '0xC726'
      - name: PANASONIC_V8_INIT_PRED_RED
        value: '0x003c'
      - name: PIXELYDIMENSION
        value: '0xA003'
      - name: SCENETYPE
        value: '0xA301'
      - name: BAYERGREESPIT
        value: '0xC62D'
      - name: USERCOMMENT
        value: '0x9286'
      - name: PANASONIC_STRIPOFFSET
        value: '0x118'
      - name: FOCALLENGTHIN35MMFILM
        value: '0xA405'
      - name: T4OPTIONS
        value: '0x0124'
      - name: GPSINFOIFDPOINTER
        value: '0x8825'
      - name: NOISE
        value: '0x920D'
      - name: SPATIALFREQUENCYRESPONSE
        value: '0xA20C'
      - name: SHADOWSCALE
        value: 0XC633
      - name: FILESOURCE
        value: '0xA300'
      - name: ARTIST
        value: '0x013B'
      - name: EXPOSURETIME
        value: '0x829A'
      - name: PIXELXDIMENSION
        value: '0xA002'
      - name: CFAPLANECOLOR
        value: '0xC616'
      - name: KODAK_IFD
        value: '0x8290'
      - name: EXTRACAMERAPROFILES
        value: '0xC6F5'
      - name: PANASONIC_SENSORBOTTOMBORDER
        value: '0x0006'
      - name: SUBJECTDISTANCERANGE
        value: '0xA40C'
      - name: BASELINENOISE
        value: '0xC62B'
      - name: FUJI_RAWIMAGEFULLWIDTH
        value: '0xF001'
      - name: JPEGLOSSLESSPREDICTORS
        value: '0x0205'
      - name: TARGETPRINTER
        value: '0x0151'
      - name: SENSINGMETHOD_TIFFEP
        value: '0x9217'
      - name: SUBJECTDISTANCE
        value: '0x9206'
      - name: PROFILELOOKTABLEDIMS
        value: '0xC725'
      - name: IMAGEDESCRIPTION
        value: '0x010E'
      - name: SAMPLEFORMAT
        value: '0x0153'
      - name: TILEOFFSETS
        value: '0x0144'
      - name: JPEGACTABLES
        value: '0x0209'
      - name: PANASONIC_V8_CLIP_VAL
        value: '0x003b'
      - name: PREVIEWSETTINGSDIGEST
        value: '0xC719'
      - name: PANASONIC_JPEG_DATA
        value: '0x002e'
      - name: BASELINESHARPNESS
        value: '0xC62C'
      - name: CANONCOLORDATA
        value: '0x4001'
      - name: COMPONENTSCONFIGURATION
        value: '0x9101'
      - name: MAKERNOTE
        value: '0x927C'
      - name: SAMPLESPERPIXEL
        value: '0x0115'
      - name: PANASONIC_V8_STRIP_WIDTH
        value: '0x0064'
      - name: COLORMATRIX1
        value: '0xC621'
      - name: CANON_SRAWTYPE
        value: '0xC6C5'
      - name: FUJI_RAWIMAGECROPTOPLEFT
        value: '0x0110'
      - name: TILEINDEX
        value: '0x82BB'
      - name: PANASONIC_V8_NUMBER_OF_STRIPS_H
        value: '0x0042'
      - name: NEWSUBFILETYPE
        value: '0x00FE'
      - name: XRESOLUTION
        value: '0x011A'
      - name: TRANSFERRANGE
        value: '0x0156'
      - name: SONYOFFSET
        value: '0x7200'
      - name: COLORSPACE
        value: '0xA001'
      - name: SENSINGMETHOD
        value: '0xA217'
      - name: TIFFEPSTANDARDID
        value: '0x9216'
      - name: BASELINEEXPOSURE
        value: '0xC62A'
      - name: PANASONIC_V8_STRIP_HEIGHTS
        value: '0x0048'
      - name: TRANSFERFUNCTION
        value: '0x012D'
      - name: CFAREPEATPATTERNDIM
        value: '0x828D'
      - name: DEVICESETTINGDESCRIPTION
        value: '0xA40B'
      - name: FUJI_RAW_IFD
        value: '0xF000'
      - name: DEFAULTCROPORIGIN
        value: '0xC61F'
      - name: PRIMARYCHROMATICITIES
        value: '0x013F'
      - name: FLASHENERGY
        value: '0xA20B'
      - name: DIGITALZOOMRATIO
        value: '0xA404'
      - name: DATETIMEDIGITIZED
        value: '0x9004'
      - name: PREVIEWSETTINGSNAME
        value: '0xC718'
      - name: PANASONIC_RAWFORMAT
        value: '0x002d'
      - name: FUJIOLDWB
        value: '0x2ff0'
      - name: PROFILETONECURVE
        value: '0xC6FC'
      - name: PANASONIC_ISO_SPEED
        value: '0x0017'
      - name: JPEGPROC
        value: '0x0200'
      - name: YCBCRPOSITIONING
        value: '0x0213'
      - name: OLYMPUSREDMULTIPLIER
        value: '0x1017'
      - name: DEFAULTCROPSIZE
        value: '0xC620'
      - name: ASSHOTPREPROFILEMATRIX
        value: 0XC690
      - name: KODAK_KDC_SENSOR_HEIGHT
        value: '0xFA14'
      - name: CANONCR2SLICE
        value: '0xC640'
      - name: COMPRESSION
        value: '0x0103'
      - name: NUMBEROFINKS
        value: '0x014E'
      - name: SPECTRALSENSITIVITY
        value: '0x8824'
      - name: SPACIALFREQUENCYRESPONSE
        value: '0x920C'
      - name: PANASONIC_V8_HUF_SHIFT_DOWN
        value: '0x0041'
      - name: LOCALIZEDCAMERAMODEL
        value: '0xC615'
      - name: ROWINTERLEAVEFACTOR
        value: '0xC71F'
      - name: JPEGDCTABLES
        value: '0x0208'
      - name: RELATEDIMAGEFILEFORMAT
        value: '0x1000'
      - name: MAXAPERTUREVALUE
        value: '0x9205'
      - name: BESTQUALITYSCALE
        value: '0xC65C'
      - name: PANASONIC_V8_GAMMA_POINTS
        value: '0x003a'
      - name: ORIENTATION
        value: '0x0112'
      - name: EXPOSUREINDEX_TIFFEP
        value: '0x9215'
      - name: PIMIFDPOINTER
        value: '0xC4A5'
      - name: PANASONIC_V8_STRIP_WIDTHS
        value: '0x0047'
      - name: DEFAULTSCALE
        value: '0xC61E'
      - name: NOISEPROFILE
        value: '0xC761'
      - name: GRAYRESPONSECURVE
        value: '0x0123'
      - name: JPEGTABLES
        value: '0x015B'
      - name: FLASHENERGY_TIFFEP
        value: '0x920B'
      - name: PANASONIC_V8_HUF_TABLE
        value: '0x0040'
      - name: SAMSUNG_WB_RGGBLEVELSBLACK
        value: '0xa028'
      - name: RELATEDIMAGELENGTH
        value: '0x1002'
      - name: INKSET
        value: '0x014C'
      - name: SONYGRBGLEVELS
        value: '0x7303'
      - name: NAVYCOMPRESSION
        value: '0x82BA'
      - name: WHITEBALANCE
        value: '0xA403'
      - name: EXPOSUREINDEX
        value: '0xA215'
      - name: DNGBACKWARDVERSION
        value: '0xC613'
      - name: COPYRIGHT
        value: '0x8298'
      - name: PHOTOSHOPPRIVATE
        value: '0x8649'
      - name: FLASHPIXVERSION
        value: '0xA000'
      - name: DNGPRIVATEDATA
        value: '0xC634'
      - name: ASSHOTICCPROFILE
        value: 0XC68F
      - name: KODAK_KDC_SENSOR_WIDTH
        value: '0xFA13'
      - name: PROFILEHUESATMAPDATA2
        value: '0xC6FB'
      - name: PANASONIC_WHITEBALANCE_SB
        value: '0x0012'
      - name: MAKERNOTESAFETY
        value: '0xC635'
      - name: FUJI_WB_GRBLEVELS
        value: '0xF00E'
      - name: PROFILECALIBRATIONSIGNATURE
        value: '0xC6F4'
      - name: PANASONIC_SENSORLEFTBORDER
        value: '0x0005'
      - name: EPSONWB
        value: '0x0E80'
      - name: UNIQUECAMERAMODEL
        value: '0xC614'
      - name: SUBTILEBLOCKSIZE
        value: '0xC71E'
      - name: CANONSHOTINFO
        value: '0x0004'
      - name: DOCUMENTNAME
        value: '0x010D'
      - name: EXPOSUREBIASVALUE
        value: '0x9204'
      - name: PANASONIC_V8_GAMMA_SLOPES
        value: '0x0039'
      - name: ASSHOTWHITEXY
        value: '0xC629'
      - name: PANASONIC_WHITEBALANCE_S2B
        value: '0x0026'
      - name: PREVIEWAPPLICATIONVERSION
        value: '0xC717'
      - name: DATETIMEORIGINAL
        value: '0x9003'
      item_type: enum
      name: TiffTag
      pos:
        line_end: 412
        line_start: 31
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffTag.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::TiffEntry::getArray
  - ~TiffEntry()
  - rawspeed::TiffEntry::getU16Array
  - rawspeed::TiffEntry::getU32Array
  - rawspeed::TiffEntry::getFloatArray
  - rawspeed::TiffEntry::getRationalArray
  - rawspeed::TiffEntry::getSRationalArray
  - rawspeed::TiffEntry::getData
  - rawspeed::TiffEntry::getArray
  - ~TiffEntry()
  - rawspeed::TiffEntry::getU16Array
  - rawspeed::TiffEntry::getU32Array
  - rawspeed::TiffEntry::getFloatArray
  - rawspeed::TiffEntry::getRationalArray
  - rawspeed::TiffEntry::getSRationalArray
  - rawspeed::TiffEntry::getData
  source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
  types:
    enum:
    - enumerators:
      - name: NOTYPE
        value: '0'
      - name: LONG
        value: '4'
      - name: BYTE
        value: '1'
      - name: ASCII
        value: '2'
      - name: SHORT
        value: '3'
      - name: RATIONAL
        value: '5'
      - name: SBYTE
        value: '6'
      - name: UNDEFINED
        value: '7'
      - name: SSHORT
        value: '8'
      - name: SLONG
        value: '9'
      - name: SRATIONAL
        value: '10'
      - name: FLOAT
        value: '11'
      - name: DOUBLE
        value: '12'
      - name: OFFSET
        value: '13'
      item_type: enum
      name: TiffDataType
      pos:
        line_end: 59
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    - enumerators:
      - name: NOTYPE
        value: '0'
      - name: LONG
        value: '4'
      - name: BYTE
        value: '1'
      - name: ASCII
        value: '2'
      - name: SHORT
        value: '3'
      - name: RATIONAL
        value: '5'
      - name: SBYTE
        value: '6'
      - name: UNDEFINED
        value: '7'
      - name: SSHORT
        value: '8'
      - name: SLONG
        value: '9'
      - name: SRATIONAL
        value: '10'
      - name: FLOAT
        value: '11'
      - name: DOUBLE
        value: '12'
      - name: OFFSET
        value: '13'
      item_type: enum
      name: TiffDataType
      pos:
        line_end: 59
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffEntry.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~TiffIFD()
  - rawspeed::TiffIFD::TiffIFD
  - '& operator=(const TiffIFD&)'
  - rawspeed::TiffIFD::getNextIFD
  - rawspeed::TiffIFD::hasEntry
  - rawspeed::TiffIFD::hasEntryRecursive
  - '& getSubIFDs() const'
  - rawspeed::TiffRootIFD::TiffRootIFD
  - rawspeed::getTiffByteOrder
  - ~TiffIFD()
  - rawspeed::TiffIFD::TiffIFD
  - '& operator=(const TiffIFD&)'
  - rawspeed::TiffIFD::getNextIFD
  - rawspeed::TiffIFD::hasEntry
  - rawspeed::TiffIFD::hasEntryRecursive
  - '& getSubIFDs() const'
  - rawspeed::TiffRootIFD::TiffRootIFD
  - rawspeed::getTiffByteOrder
  source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Depth
        type: int
      - name: SubIFDCount
        type: int
      - name: RecursiveSubIFDCount
        type: int
      item_type: struct
      name: Limits
      pos:
        line_end: 96
        line_start: 80
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    - fields:
      - name: make
        type: std::string
      - name: model
        type: std::string
      item_type: struct
      name: TiffID
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    - fields:
      - name: Depth
        type: int
      - name: SubIFDCount
        type: int
      - name: RecursiveSubIFDCount
        type: int
      item_type: struct
      name: Limits
      pos:
        line_end: 96
        line_start: 80
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    - fields:
      - name: make
        type: std::string
      - name: model
        type: std::string
      item_type: struct
      name: TiffID
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/librawspeed/src/librawspeed/tiff/TiffIFD.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractPrefixCodeTranscoder::AbstractPrefixCodeTranscoder
  - rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
  - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
  - rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
  - rawspeed::AbstractPrefixCodeTranscoder::setup
  - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
  - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
  - operator==(const AbstractPrefixCodeTranscoder& other) const
  - rawspeed::AbstractPrefixCodeTranscoder::AbstractPrefixCodeTranscoder
  - rawspeed::AbstractPrefixCodeTranscoder::verifyCodeValuesAsDiffLengths
  - rawspeed::AbstractPrefixCodeTranscoder::maxCodeLength
  - rawspeed::AbstractPrefixCodeTranscoder::maxCodePlusDiffLength
  - rawspeed::AbstractPrefixCodeTranscoder::setup
  - rawspeed::AbstractPrefixCodeTranscoder::isFullDecode
  - rawspeed::AbstractPrefixCodeTranscoder::handleDNGBug16
  - operator==(const AbstractPrefixCodeTranscoder& other) const
  source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCodeLUTDecoder::setup
  - rawspeed::PrefixCodeLUTDecoder::decodeCodeValue
  - rawspeed::PrefixCodeLUTDecoder::decodeDifference
  - rawspeed::PrefixCodeLUTDecoder::decode
  - rawspeed::PrefixCodeLUTDecoder::setup
  - rawspeed::PrefixCodeLUTDecoder::decodeCodeValue
  - rawspeed::PrefixCodeLUTDecoder::decodeDifference
  - rawspeed::PrefixCodeLUTDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::HuffmanCode::HuffmanCode
  - rawspeed::HuffmanCode::maxCodeLength
  - rawspeed::HuffmanCode::maxCodesCount
  - rawspeed::HuffmanCode::generateCodeSymbols
  - operator==(const HuffmanCode& other) const
  - rawspeed::HuffmanCode::setNCodesPerLength
  - rawspeed::HuffmanCode::setCodeValues
  - operator PrefixCode<CodeTag>()
  - rawspeed::HuffmanCode::HuffmanCode
  - rawspeed::HuffmanCode::maxCodeLength
  - rawspeed::HuffmanCode::maxCodesCount
  - rawspeed::HuffmanCode::generateCodeSymbols
  - operator==(const HuffmanCode& other) const
  - rawspeed::HuffmanCode::setNCodesPerLength
  - rawspeed::HuffmanCode::setCodeValues
  - operator PrefixCode<CodeTag>()
  source_file: /src/librawspeed/src/librawspeed/codes/HuffmanCode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::setup
  - rawspeed::PrefixCodeLookupDecoder::decodeCodeValue
  - rawspeed::PrefixCodeLookupDecoder::decodeDifference
  - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeLookupDecoder::readSymbol
  - rawspeed::PrefixCodeLookupDecoder::decode
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::PrefixCodeLookupDecoder
  - rawspeed::PrefixCodeLookupDecoder::setup
  - rawspeed::PrefixCodeLookupDecoder::decodeCodeValue
  - rawspeed::PrefixCodeLookupDecoder::decodeDifference
  - rawspeed::PrefixCodeLookupDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeLookupDecoder::readSymbol
  - rawspeed::PrefixCodeLookupDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCode::PrefixCode
  - rawspeed::PrefixCode::verifyCodeSymbols
  - rawspeed::PrefixCode::PrefixCode
  - rawspeed::PrefixCode::verifyCodeSymbols
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& getAsBranch()'
  - '& getAsLeaf()'
  - ~Node()
  - operator typename Node::Type() const final
  - operator typename Node::Type() const final
  - rawspeed::BinaryPrefixTree::Leaf
  - rawspeed::BinaryPrefixTree::Leaf
  - rawspeed::BinaryPrefixTree<CodeTag>::add
  - '& getAsBranch()'
  - '& getAsLeaf()'
  - ~Node()
  - operator typename Node::Type() const final
  - operator typename Node::Type() const final
  - rawspeed::BinaryPrefixTree::Leaf
  - rawspeed::BinaryPrefixTree::Leaf
  - rawspeed::BinaryPrefixTree<CodeTag>::add
  source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
  types:
    enum:
    - enumerators:
      - name: Branch
      - name: Leaf
      item_type: enum
      name: Type
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - enumerators:
      - name: Branch
      - name: Leaf
      item_type: enum
      name: Type
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: Node
      pos:
        line_end: 59
        line_start: 43
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - fields:
      - name: buds
        type: std::array<std::unique_ptr<Node>, 2>
      item_type: struct
      name: Branch
      pos:
        line_end: 67
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - fields:
      - name: value
        type: CodeTy
      item_type: struct
      name: Leaf
      pos:
        line_end: 79
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - fields: []
      item_type: struct
      name: Node
      pos:
        line_end: 59
        line_start: 43
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - fields:
      - name: buds
        type: std::array<std::unique_ptr<Node>, 2>
      item_type: struct
      name: Branch
      pos:
        line_end: 67
        line_start: 61
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    - fields:
      - name: value
        type: CodeTy
      item_type: struct
      name: Leaf
      pos:
        line_end: 79
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/codes/BinaryPrefixTree.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeTreeDecoder::readSymbol
  - rawspeed::PrefixCodeTreeDecoder::setup
  - rawspeed::PrefixCodeTreeDecoder::decodeCodeValue
  - rawspeed::PrefixCodeTreeDecoder::decodeDifference
  - rawspeed::PrefixCodeTreeDecoder::decode
  - rawspeed::PrefixCodeTreeDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeTreeDecoder::readSymbol
  - rawspeed::PrefixCodeTreeDecoder::setup
  - rawspeed::PrefixCodeTreeDecoder::decodeCodeValue
  - rawspeed::PrefixCodeTreeDecoder::decodeDifference
  - rawspeed::PrefixCodeTreeDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
  - rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
  - rawspeed::DummyPrefixCodeDecoder::setup
  - rawspeed::DummyPrefixCodeDecoder::isFullDecode
  - rawspeed::DummyPrefixCodeDecoder::decodeCodeValue
  - rawspeed::DummyPrefixCodeDecoder::decodeDifference
  - rawspeed::DummyPrefixCodeDecoder::decode
  - rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
  - rawspeed::DummyPrefixCodeDecoder::DummyPrefixCodeDecoder
  - rawspeed::DummyPrefixCodeDecoder::setup
  - rawspeed::DummyPrefixCodeDecoder::isFullDecode
  - rawspeed::DummyPrefixCodeDecoder::decodeCodeValue
  - rawspeed::DummyPrefixCodeDecoder::decodeDifference
  - rawspeed::DummyPrefixCodeDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractPrefixCodeEncoder::setup
  - rawspeed::AbstractPrefixCodeEncoder::reduce
  - rawspeed::AbstractPrefixCodeEncoder::setup
  - rawspeed::AbstractPrefixCodeEncoder::reduce
  source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
  - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
  - rawspeed::PrefixCodeVectorEncoder::setup
  - rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
  - rawspeed::PrefixCodeVectorEncoder::encodeDifference
  - rawspeed::PrefixCodeVectorEncoder::encode
  - rawspeed::PrefixCodeVectorEncoder::encodeCodeValueImpl
  - rawspeed::PrefixCodeVectorEncoder::getCodeIndexOfCodeValue
  - rawspeed::PrefixCodeVectorEncoder::setup
  - rawspeed::PrefixCodeVectorEncoder::encodeCodeValue
  - rawspeed::PrefixCodeVectorEncoder::encodeDifference
  - rawspeed::PrefixCodeVectorEncoder::encode
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::validate
  - rawspeed::AbstractPrefixCode::CodeSymbol
  - rawspeed::AbstractPrefixCode::CodeSymbol
  - rawspeed::AbstractPrefixCode::getBitsMSB
  - rawspeed::AbstractPrefixCode::HaveCommonPrefix
  - operator==(const CodeSymbol& other) const
  - rawspeed::AbstractPrefixCode::AbstractPrefixCode
  - rawspeed::AbstractPrefixCode::AbstractPrefixCode
  - rawspeed::validate
  - rawspeed::AbstractPrefixCode::CodeSymbol
  - rawspeed::AbstractPrefixCode::CodeSymbol
  - rawspeed::AbstractPrefixCode::getBitsMSB
  - rawspeed::AbstractPrefixCode::HaveCommonPrefix
  - operator==(const CodeSymbol& other) const
  - rawspeed::AbstractPrefixCode::AbstractPrefixCode
  - rawspeed::AbstractPrefixCode::AbstractPrefixCode
  source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: CodeTraits
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: MaxCodeLenghtBits
        type: int
      - name: MaxNumCodeValues
        type: int
      - name: MaxCodeValueLenghtBits
        type: int
      - name: MaxCodeValue
        type: CodeValueTy
      - name: MaxDiffLengthBits
        type: int
      - name: MaxDiffLength
        type: CodeValueTy
      - name: SupportsFullDecode
        type: bool
      item_type: struct
      name: CodeTraits<BaselineCodeTag>
      pos:
        line_end: 63
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: MaxCodeLenghtBits
        type: int
      - name: MaxNumCodeValues
        type: int
      - name: MaxCodeValueLenghtBits
        type: int
      - name: MaxCodeValue
        type: CodeValueTy
      - name: MaxDiffLengthBits
        type: int
      - name: MaxDiffLength
        type: CodeValueTy
      - name: SupportsFullDecode
        type: bool
      item_type: struct
      name: CodeTraits<VC5CodeTag>
      pos:
        line_end: 80
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields: []
      item_type: struct
      name: CodeTraitsValidator
      pos:
        line_end: 135
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: code
        type: typename Traits::CodeTy
      - name: code_len
        type: uint8_t
      - name: RAWSPEED_READONLY
        type: bool
      item_type: struct
      name: CodeSymbol
      pos:
        line_end: 175
        line_start: 143
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields: []
      item_type: struct
      name: CodeTraits
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: MaxCodeLenghtBits
        type: int
      - name: MaxNumCodeValues
        type: int
      - name: MaxCodeValueLenghtBits
        type: int
      - name: MaxCodeValue
        type: CodeValueTy
      - name: MaxDiffLengthBits
        type: int
      - name: MaxDiffLength
        type: CodeValueTy
      - name: SupportsFullDecode
        type: bool
      item_type: struct
      name: CodeTraits<BaselineCodeTag>
      pos:
        line_end: 63
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: MaxCodeLenghtBits
        type: int
      - name: MaxNumCodeValues
        type: int
      - name: MaxCodeValueLenghtBits
        type: int
      - name: MaxCodeValue
        type: CodeValueTy
      - name: MaxDiffLengthBits
        type: int
      - name: MaxDiffLength
        type: CodeValueTy
      - name: SupportsFullDecode
        type: bool
      item_type: struct
      name: CodeTraits<VC5CodeTag>
      pos:
        line_end: 80
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields: []
      item_type: struct
      name: CodeTraitsValidator
      pos:
        line_end: 135
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    - fields:
      - name: code
        type: typename Traits::CodeTy
      - name: code_len
        type: uint8_t
      - name: RAWSPEED_READONLY
        type: bool
      item_type: struct
      name: CodeSymbol
      pos:
        line_end: 175
        line_start: 143
        source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCode.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractPrefixCodeDecoder::processSymbol
  - rawspeed::AbstractPrefixCodeDecoder::extend
  - rawspeed::AbstractPrefixCodeDecoder::processSymbol
  - rawspeed::AbstractPrefixCodeDecoder::extend
  source_file: /src/librawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeVectorDecoder::readSymbol
  - rawspeed::PrefixCodeVectorDecoder::setup
  - rawspeed::PrefixCodeVectorDecoder::decodeCodeValue
  - rawspeed::PrefixCodeVectorDecoder::decodeDifference
  - rawspeed::PrefixCodeVectorDecoder::decode
  - rawspeed::PrefixCodeVectorDecoder::finishReadingPartialSymbol
  - rawspeed::PrefixCodeVectorDecoder::readSymbol
  - rawspeed::PrefixCodeVectorDecoder::setup
  - rawspeed::PrefixCodeVectorDecoder::decodeCodeValue
  - rawspeed::PrefixCodeVectorDecoder::decodeDifference
  - rawspeed::PrefixCodeVectorDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cr2sRawInterpolator::Cr2sRawInterpolator
  - rawspeed::Cr2sRawInterpolator::Cr2sRawInterpolator
  source_file: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::LoadY
  - rawspeed::LoadCbCr
  - rawspeed::CopyCbCr
  - rawspeed::YCbCr
  - rawspeed::signExtend
  - rawspeed::applyHue
  - rawspeed::process
  - rawspeed::interpolateCbCr
  - rawspeed::interpolateCbCr
  - rawspeed::Cr2sRawInterpolator::interpolate_422_row
  - rawspeed::Cr2sRawInterpolator::interpolate_422
  - rawspeed::Cr2sRawInterpolator::interpolate_420_row
  - rawspeed::Cr2sRawInterpolator::interpolate_420
  - rawspeed::Cr2sRawInterpolator::STORE_RGB
  - "Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - "Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - "Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - rawspeed::Cr2sRawInterpolator::interpolate
  - rawspeed::LoadY
  - rawspeed::LoadCbCr
  - rawspeed::CopyCbCr
  - rawspeed::YCbCr
  - rawspeed::signExtend
  - rawspeed::applyHue
  - rawspeed::process
  - rawspeed::interpolateCbCr
  - rawspeed::interpolateCbCr
  - rawspeed::Cr2sRawInterpolator::interpolate_422_row
  - rawspeed::Cr2sRawInterpolator::interpolate_422
  - rawspeed::Cr2sRawInterpolator::interpolate_420_row
  - rawspeed::Cr2sRawInterpolator::interpolate_420
  - rawspeed::Cr2sRawInterpolator::STORE_RGB
  - "Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - "Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - "Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p,\n                                   CroppedArray1DRef<uint16_t>
    out)"
  - rawspeed::Cr2sRawInterpolator::interpolate
  source_file: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Y
        type: int
      - name: Cb
        type: int
      - name: Cr
        type: int
      item_type: struct
      name: Cr2sRawInterpolator::YCbCr
      pos:
        line_end: 94
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    - fields:
      - name: Y
        type: int
      - name: Cb
        type: int
      - name: Cr
        type: int
      item_type: struct
      name: Cr2sRawInterpolator::YCbCr
      pos:
        line_end: 94
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::PanasonicV7Decompressor::PanasonicV7Decompressor
  - rawspeed::PanasonicV7Decompressor::decompressBlock
  - rawspeed::PanasonicV7Decompressor::decompressRow
  - rawspeed::PanasonicV7Decompressor::decompress
  - rawspeed::PanasonicV7Decompressor::PanasonicV7Decompressor
  - rawspeed::PanasonicV7Decompressor::decompressBlock
  - rawspeed::PanasonicV7Decompressor::decompressRow
  - rawspeed::PanasonicV7Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::SonyArw1Decompressor::SonyArw1Decompressor
  - rawspeed::SonyArw1Decompressor::getDiff
  - rawspeed::SonyArw1Decompressor::decompress
  - rawspeed::SonyArw1Decompressor::SonyArw1Decompressor
  - rawspeed::SonyArw1Decompressor::getDiff
  - rawspeed::SonyArw1Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::HasselbladLJpegDecoder::erratumImplicitEOIMarkerAfterScan
  - rawspeed::HasselbladLJpegDecoder::erratumImplicitEOIMarkerAfterScan
  source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DngTilingDescription
  - rawspeed::DngSliceElement
  - rawspeed::DngSliceElement
  - rawspeed::DngSliceElement
  - '& operator=(const DngSliceElement&) noexcept'
  - '& operator=(DngSliceElement&&) noexcept'
  - rawspeed::DngSliceElement
  - rawspeed::AbstractDngDecompressor::AbstractDngDecompressor
  - rawspeed::DngTilingDescription
  - rawspeed::DngSliceElement
  - rawspeed::DngSliceElement
  - rawspeed::DngSliceElement
  - '& operator=(const DngSliceElement&) noexcept'
  - '& operator=(DngSliceElement&&) noexcept'
  - rawspeed::DngSliceElement
  - rawspeed::AbstractDngDecompressor::AbstractDngDecompressor
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& dim'
        type: iPoint2D
      - name: tileW
        type: uint32_t
      - name: tileH
        type: uint32_t
      - name: tilesX
        type: uint32_t
      - name: tilesY
        type: uint32_t
      - name: numTiles
        type: unsigned
      item_type: struct
      name: DngTilingDescription
      pos:
        line_end: 71
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    - fields:
      - name: '& dsc'
        type: DngTilingDescription
      - name: n
        type: unsigned
      - name: bs
        type: ByteStream
      - name: column
        type: unsigned
      - name: row
        type: unsigned
      - name: lastColumn
        type: bool
      - name: lastRow
        type: bool
      - name: offX
        type: unsigned
      - name: offY
        type: unsigned
      - name: width
        type: unsigned
      - name: height
        type: unsigned
      item_type: struct
      name: DngSliceElement
      pos:
        line_end: 124
        line_start: 73
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    - fields:
      - name: '& dim'
        type: iPoint2D
      - name: tileW
        type: uint32_t
      - name: tileH
        type: uint32_t
      - name: tilesX
        type: uint32_t
      - name: tilesY
        type: uint32_t
      - name: numTiles
        type: unsigned
      item_type: struct
      name: DngTilingDescription
      pos:
        line_end: 71
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    - fields:
      - name: '& dsc'
        type: DngTilingDescription
      - name: n
        type: unsigned
      - name: bs
        type: ByteStream
      - name: column
        type: unsigned
      - name: row
        type: unsigned
      - name: lastColumn
        type: bool
      - name: lastRow
        type: bool
      - name: offX
        type: unsigned
      - name: offY
        type: unsigned
      - name: width
        type: unsigned
      - name: height
        type: unsigned
      item_type: struct
      name: DngSliceElement
      pos:
        line_end: 124
        line_start: 73
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::LJpegDecompressor::LJpegDecompressor
  - rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
  - rawspeed::LJpegDecompressor::getPrefixCodeDecoders
  - rawspeed::LJpegDecompressor::getInitialPreds
  - rawspeed::LJpegDecompressor::decodeRowN
  - rawspeed::LJpegDecompressor::decodeN
  - rawspeed::LJpegDecompressor::decode
  - rawspeed::LJpegDecompressor::LJpegDecompressor
  - rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl
  - rawspeed::LJpegDecompressor::getPrefixCodeDecoders
  - rawspeed::LJpegDecompressor::getInitialPreds
  - rawspeed::LJpegDecompressor::decodeRowN
  - rawspeed::LJpegDecompressor::decodeN
  - rawspeed::LJpegDecompressor::decode
  source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mcu
        type: iPoint2D
      - name: dim
        type: iPoint2D
      item_type: struct
      name: Frame
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.h
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder<>
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.h
    - fields:
      - name: mcu
        type: iPoint2D
      - name: dim
        type: iPoint2D
      item_type: struct
      name: Frame
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.h
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder<>
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::PanasonicV4Decompressor::PanasonicV4Decompressor
  - rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
  - rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
  - rawspeed::PanasonicV4Decompressor::ProxyStream::ProxyStream
  - rawspeed::PanasonicV4Decompressor::ProxyStream::getBits
  - rawspeed::PanasonicV4Decompressor::processPixelPacket
  - rawspeed::PanasonicV4Decompressor::processBlock
  - rawspeed::PanasonicV4Decompressor::decompressThread
  - rawspeed::PanasonicV4Decompressor::decompress
  - rawspeed::PanasonicV4Decompressor::PanasonicV4Decompressor
  - rawspeed::PanasonicV4Decompressor::chopInputIntoBlocks
  - rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock
  - rawspeed::PanasonicV4Decompressor::ProxyStream::ProxyStream
  - rawspeed::PanasonicV4Decompressor::ProxyStream::getBits
  - rawspeed::PanasonicV4Decompressor::processPixelPacket
  - rawspeed::PanasonicV4Decompressor::processBlock
  - rawspeed::PanasonicV4Decompressor::decompressThread
  - rawspeed::PanasonicV4Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PhaseOneDecompressor::PhaseOneDecompressor
  - rawspeed::PhaseOneDecompressor::prepareStrips
  - rawspeed::PhaseOneDecompressor::decompressStrip
  - rawspeed::PhaseOneDecompressor::decompressThread
  - rawspeed::PhaseOneDecompressor::decompress
  - rawspeed::PhaseOneDecompressor::PhaseOneDecompressor
  - rawspeed::PhaseOneDecompressor::prepareStrips
  - rawspeed::PhaseOneDecompressor::decompressStrip
  - rawspeed::PhaseOneDecompressor::decompressThread
  - rawspeed::PhaseOneDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
  - rawspeed::OlympusDifferenceDecoder::getDiff
  - rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
  - rawspeed::OlympusDecompressorImpl::getPred
  - rawspeed::OlympusDecompressorImpl::decompressGroup
  - rawspeed::OlympusDecompressorImpl::decompressRow
  - rawspeed::OlympusDecompressorImpl::decompress
  - rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
  - rawspeed::OlympusDifferenceDecoder::getDiff
  - rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
  - rawspeed::OlympusDecompressorImpl::getPred
  - rawspeed::OlympusDecompressorImpl::decompressGroup
  - rawspeed::OlympusDecompressorImpl::decompressRow
  - rawspeed::OlympusDecompressorImpl::decompress
  - rawspeed::OlympusDecompressor::OlympusDecompressor
  - rawspeed::OlympusDecompressor::decompress
  - rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
  - rawspeed::OlympusDifferenceDecoder::getDiff
  - rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
  - rawspeed::OlympusDecompressorImpl::getPred
  - rawspeed::OlympusDecompressorImpl::decompressGroup
  - rawspeed::OlympusDecompressorImpl::decompressRow
  - rawspeed::OlympusDecompressorImpl::decompress
  - rawspeed::OlympusDifferenceDecoder::OlympusDifferenceDecoder
  - rawspeed::OlympusDifferenceDecoder::getDiff
  - rawspeed::OlympusDecompressorImpl::OlympusDecompressorImpl
  - rawspeed::OlympusDecompressorImpl::getPred
  - rawspeed::OlympusDecompressorImpl::decompressGroup
  - rawspeed::OlympusDecompressorImpl::decompressRow
  - rawspeed::OlympusDecompressorImpl::decompress
  - rawspeed::OlympusDecompressor::OlympusDecompressor
  - rawspeed::OlympusDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getInput
  - rawspeed::PanasonicV8Decompressor::InternalDecoder::InternalDecoder
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::isValidImageGrid
  - rawspeed::bitsPerPixelNeeded
  - rawspeed::minBitsPerPixelNeeded
  - rawspeed::maxBitsPerPixelNeeded
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::isValidImageGrid
  - rawspeed::bitsPerPixelNeeded
  - rawspeed::minBitsPerPixelNeeded
  - rawspeed::maxBitsPerPixelNeeded
  - "PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n    ByteStream
    stream)"
  - "PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n    iPoint2D
    imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const uint16_t>
    stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
  - rawspeed::PanasonicV8Decompressor::PanasonicV8Decompressor
  - rawspeed::PanasonicV8Decompressor::decompress
  - rawspeed::PanasonicV8Decompressor::decompressStrip
  - PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
  - rawspeed::getInput
  - rawspeed::PanasonicV8Decompressor::InternalDecoder::InternalDecoder
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::isValidImageGrid
  - rawspeed::bitsPerPixelNeeded
  - rawspeed::minBitsPerPixelNeeded
  - rawspeed::maxBitsPerPixelNeeded
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::isValidImageGrid
  - rawspeed::bitsPerPixelNeeded
  - rawspeed::minBitsPerPixelNeeded
  - rawspeed::maxBitsPerPixelNeeded
  - "PanasonicV8Decompressor::DecompressorParamsBuilder::getDecoderLUT(\n    ByteStream
    stream)"
  - "PanasonicV8Decompressor::DecompressorParamsBuilder::getOutRects(\n    iPoint2D
    imgSize, Array1DRef<const uint32_t> stripLineOffsets,\n    Array1DRef<const uint16_t>
    stripWidths,\n    Array1DRef<const uint16_t> stripHeights)"
  - rawspeed::PanasonicV8Decompressor::PanasonicV8Decompressor
  - rawspeed::PanasonicV8Decompressor::decompress
  - rawspeed::PanasonicV8Decompressor::decompressStrip
  - PanasonicV8Decompressor::InternalDecoder::decodeNextDiffValue()
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
  types:
    enum:
    - enumerators:
      - name: ContinuesRow
      - name: BeginsNewRow
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - enumerators:
      - name: ContinuesRow
      - name: BeginsNewRow
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - enumerators:
      - name: ContinuesRow
      - name: BeginsNewRow
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - enumerators:
      - name: ContinuesRow
      - name: BeginsNewRow
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamerReversedSequentialReplenisher
      pos:
        line_end: 110
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerRevMSB>
      pos:
        line_end: 121
        line_start: 114
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - fields:
      - name: bitcount
        type: uint8_t
      - name: symbol
        type: uint16_t
      - name: codeValue
        type: uint8_t
      item_type: struct
      name: Entry
      pos:
        line_end: 251
        line_start: 247
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - fields: []
      item_type: struct
      name: BitStreamerReversedSequentialReplenisher
      pos:
        line_end: 110
        line_start: 63
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - fields:
      - name: Tag
        type: BitOrder
      - name: canUseWithPrefixCodeDecoder
        type: bool
      - name: MaxProcessBytes
        type: int
      item_type: struct
      name: BitStreamerTraits<BitStreamerRevMSB>
      pos:
        line_end: 121
        line_start: 114
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    - fields:
      - name: bitcount
        type: uint8_t
      - name: symbol
        type: uint16_t
      - name: codeValue
        type: uint8_t
      item_type: struct
      name: Entry
      pos:
        line_end: 251
        line_start: 247
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::SamsungV0Decompressor::SamsungV0Decompressor
  - rawspeed::SamsungV0Decompressor::computeStripes
  - rawspeed::SamsungV0Decompressor::decompress
  - rawspeed::SamsungV0Decompressor::calcAdj
  - rawspeed::SamsungV0Decompressor::decompressStrip
  - rawspeed::SamsungV0Decompressor::SamsungV0Decompressor
  - rawspeed::SamsungV0Decompressor::computeStripes
  - rawspeed::SamsungV0Decompressor::decompress
  - rawspeed::SamsungV0Decompressor::calcAdj
  - rawspeed::SamsungV0Decompressor::decompressStrip
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FujiDecompressor::FujiHeader
  - rawspeed::FujiDecompressor::FujiHeader
  source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: signature
        type: uint16_t
      - name: version
        type: uint8_t
      - name: raw_type
        type: uint8_t
      - name: raw_bits
        type: uint8_t
      - name: raw_height
        type: uint16_t
      - name: raw_rounded_width
        type: uint16_t
      - name: raw_width
        type: uint16_t
      - name: block_size
        type: uint16_t
      - name: blocks_in_row
        type: uint8_t
      - name: total_lines
        type: uint16_t
      - name: MCU
        type: iPoint2D
      item_type: struct
      name: FujiHeader
      pos:
        line_end: 59
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.h
    - fields:
      - name: signature
        type: uint16_t
      - name: version
        type: uint8_t
      - name: raw_type
        type: uint8_t
      - name: raw_bits
        type: uint8_t
      - name: raw_height
        type: uint16_t
      - name: raw_rounded_width
        type: uint16_t
      - name: raw_width
        type: uint16_t
      - name: block_size
        type: uint16_t
      - name: blocks_in_row
        type: uint8_t
      - name: total_lines
        type: uint16_t
      - name: MCU
        type: iPoint2D
      item_type: struct
      name: FujiHeader
      pos:
        line_end: 59
        line_start: 42
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::PanasonicV5Decompressor::Block
  - rawspeed::PanasonicV5Decompressor::Block
  - rawspeed::PanasonicV5Decompressor::Block
  - rawspeed::PanasonicV5Decompressor::Block
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bs
        type: ByteStream
      - name: beginCoord
        type: iPoint2D
      - name: endCoord
        type: iPoint2D
      item_type: struct
      name: Block
      pos:
        line_end: 82
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    - fields:
      - name: bs
        type: ByteStream
      - name: beginCoord
        type: iPoint2D
      - name: endCoord
        type: iPoint2D
      item_type: struct
      name: Block
      pos:
        line_end: 82
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PanasonicV4Decompressor::Block
  - rawspeed::PanasonicV4Decompressor::Block
  - rawspeed::PanasonicV4Decompressor::Block
  - rawspeed::PanasonicV4Decompressor::Block
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bs
        type: ByteStream
      - name: beginCoord
        type: iPoint2D
      - name: endCoord
        type: iPoint2D
      item_type: struct
      name: Block
      pos:
        line_end: 66
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    - fields:
      - name: bs
        type: ByteStream
      - name: beginCoord
        type: iPoint2D
      - name: endCoord
        type: iPoint2D
      item_type: struct
      name: Block
      pos:
        line_end: 66
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
  - rawspeed::NikonLASDecompressor::createBigTable
  - rawspeed::NikonLASDecompressor::setNCodesPerLength
  - rawspeed::NikonLASDecompressor::setCodeValues
  - rawspeed::NikonLASDecompressor::setup
  - rawspeed::NikonLASDecompressor::decodeDifference
  - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
  - rawspeed::NikonLASDecompressor::createBigTable
  - rawspeed::NikonLASDecompressor::setNCodesPerLength
  - rawspeed::NikonLASDecompressor::setCodeValues
  - rawspeed::NikonLASDecompressor::setup
  - rawspeed::NikonLASDecompressor::decodeDifference
  - rawspeed::NikonDecompressor::createCurve
  - rawspeed::NikonDecompressor::createPrefixCodeDecoder
  - "NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n    uint32_t
    huffSelect)"
  - rawspeed::NikonDecompressor::NikonDecompressor
  - rawspeed::NikonDecompressor::decompress
  - rawspeed::NikonDecompressor::decompress
  - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
  - rawspeed::NikonLASDecompressor::createBigTable
  - rawspeed::NikonLASDecompressor::setNCodesPerLength
  - rawspeed::NikonLASDecompressor::setCodeValues
  - rawspeed::NikonLASDecompressor::setup
  - rawspeed::NikonLASDecompressor::decodeDifference
  - rawspeed::NikonLASDecompressor::createPrefixCodeDecoder
  - rawspeed::NikonLASDecompressor::createBigTable
  - rawspeed::NikonLASDecompressor::setNCodesPerLength
  - rawspeed::NikonLASDecompressor::setCodeValues
  - rawspeed::NikonLASDecompressor::setup
  - rawspeed::NikonLASDecompressor::decodeDifference
  - rawspeed::NikonDecompressor::createCurve
  - rawspeed::NikonDecompressor::createPrefixCodeDecoder
  - "NikonDecompressor::createPrefixCodeDecoder<PrefixCodeDecoder<>>(\n    uint32_t
    huffSelect)"
  - rawspeed::NikonDecompressor::NikonDecompressor
  - rawspeed::NikonDecompressor::decompress
  - rawspeed::NikonDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bits
        type: std::array<uint32_t, 17>
      - name: huffval
        type: std::array<uint32_t, 256>
      - name: mincode
        type: std::array<uint16_t, 17>
      - name: maxcode
        type: std::array<int, 18>
      - name: valptr
        type: std::array<int16_t, 17>
      - name: numbits
        type: std::array<uint32_t, 256>
      - name: bigTable
        type: std::vector<int>
      - name: initialized
        type: bool
      item_type: struct
      name: PrefixCodeDecoder
      pos:
        line_end: 102
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - fields:
      - name: bits
        type: std::array<uint32_t, 17>
      - name: huffval
        type: std::array<uint32_t, 256>
      - name: mincode
        type: std::array<uint16_t, 17>
      - name: maxcode
        type: std::array<int, 18>
      - name: valptr
        type: std::array<int16_t, 17>
      - name: numbits
        type: std::array<uint32_t, 256>
      - name: bigTable
        type: std::vector<int>
      - name: initialized
        type: bool
      item_type: struct
      name: PrefixCodeDecoder
      pos:
        line_end: 102
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - fields:
      - name: bits
        type: std::array<uint32_t, 17>
      - name: huffval
        type: std::array<uint32_t, 256>
      - name: mincode
        type: std::array<uint16_t, 17>
      - name: maxcode
        type: std::array<int, 18>
      - name: valptr
        type: std::array<int16_t, 17>
      - name: numbits
        type: std::array<uint32_t, 256>
      - name: bigTable
        type: std::vector<int>
      - name: initialized
        type: bool
      item_type: struct
      name: PrefixCodeDecoder
      pos:
        line_end: 102
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    - fields:
      - name: bits
        type: std::array<uint32_t, 17>
      - name: huffval
        type: std::array<uint32_t, 256>
      - name: mincode
        type: std::array<uint16_t, 17>
      - name: maxcode
        type: std::array<int, 18>
      - name: valptr
        type: std::array<int16_t, 17>
      - name: numbits
        type: std::array<uint32_t, 256>
      - name: bigTable
        type: std::vector<int>
      - name: initialized
        type: bool
      item_type: struct
      name: PrefixCodeDecoder
      pos:
        line_end: 102
        line_start: 82
        source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::PanasonicV8Decompressor::isSentinel
  - rawspeed::PanasonicV8Decompressor::DecompressorParams
  - rawspeed::PanasonicV8Decompressor::DecompressorParams
  - rawspeed::PanasonicV8Decompressor::DecompressorParamsBuilder
  - rawspeed::PanasonicV8Decompressor::getDecompressorParams
  - rawspeed::PanasonicV8Decompressor::isSentinel
  - rawspeed::PanasonicV8Decompressor::DecompressorParams
  - rawspeed::PanasonicV8Decompressor::DecompressorParams
  - rawspeed::PanasonicV8Decompressor::DecompressorParamsBuilder
  - rawspeed::PanasonicV8Decompressor::getDecompressorParams
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bitcount
        type: uint8_t
      - name: diffCat
        type: uint8_t
      item_type: struct
      name: DecoderLUTEntry
      pos:
        line_end: 64
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    - fields:
      - name: imgSize
        type: iPoint2D
      - name: mStrips
        type: Array1DRef<const Array1DRef<const uint8_t>>
      - name: mOutRect
        type: Array1DRef<const iRectangle2D>
      - name: mDecoderLUT
        type: Array1DRef<const DecoderLUTEntry>
      - name: initialPrediction
        type: Bayer2x2
      item_type: struct
      name: DecompressorParams
      pos:
        line_end: 89
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    - fields:
      - name: imgSize
        type: iPoint2D
      - name: mDecoderLUT
        type: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
      - name: mStrips
        type: Array1DRef<const Array1DRef<const uint8_t>>
      - name: initialPrediction
        type: Bayer2x2
      - name: mOutRects
        type: std::vector<iRectangle2D>
      - name: "getDecoderLUT(\n        ByteStream bs)"
        type: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
      - name: "getOutRects(\n        iPoint2D imgSize, Array1DRef<const uint32_t>
          stripLineOffsets,\n        Array1DRef<const uint16_t> stripWidths,\n        Array1DRef<const
          uint16_t> stripHeights)"
        type: std::vector<iRectangle2D>
      item_type: struct
      name: DecompressorParamsBuilder
      pos:
        line_end: 130
        line_start: 91
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    - fields:
      - name: bitcount
        type: uint8_t
      - name: diffCat
        type: uint8_t
      item_type: struct
      name: DecoderLUTEntry
      pos:
        line_end: 64
        line_start: 56
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    - fields:
      - name: imgSize
        type: iPoint2D
      - name: mStrips
        type: Array1DRef<const Array1DRef<const uint8_t>>
      - name: mOutRect
        type: Array1DRef<const iRectangle2D>
      - name: mDecoderLUT
        type: Array1DRef<const DecoderLUTEntry>
      - name: initialPrediction
        type: Bayer2x2
      item_type: struct
      name: DecompressorParams
      pos:
        line_end: 89
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    - fields:
      - name: imgSize
        type: iPoint2D
      - name: mDecoderLUT
        type: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
      - name: mStrips
        type: Array1DRef<const Array1DRef<const uint8_t>>
      - name: initialPrediction
        type: Bayer2x2
      - name: mOutRects
        type: std::vector<iRectangle2D>
      - name: "getDecoderLUT(\n        ByteStream bs)"
        type: std::vector<PanasonicV8Decompressor::DecoderLUTEntry>
      - name: "getOutRects(\n        iPoint2D imgSize, Array1DRef<const uint32_t>
          stripLineOffsets,\n        Array1DRef<const uint16_t> stripWidths,\n        Array1DRef<const
          uint16_t> stripHeights)"
        type: std::vector<iRectangle2D>
      item_type: struct
      name: DecompressorParamsBuilder
      pos:
        line_end: 130
        line_start: 91
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV8Decompressor.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cr2SliceWidths::Cr2SliceWidths
  - rawspeed::Cr2SliceWidths::Cr2SliceWidths
  - rawspeed::Cr2SliceWidths::empty
  - rawspeed::Cr2SliceWidths::widthOfSlice
  - rawspeed::Cr2SliceWidthIterator
  - operator*() const
  - '& operator++()'
  - "operator==(const Cr2SliceWidthIterator& a,\n                         const Cr2SliceWidthIterator&
    b)"
  - rawspeed::Cr2SliceWidths::begin
  - rawspeed::Cr2SliceWidths::end
  - rawspeed::Cr2SliceWidths::Cr2SliceWidths
  - rawspeed::Cr2SliceWidths::Cr2SliceWidths
  - rawspeed::Cr2SliceWidths::empty
  - rawspeed::Cr2SliceWidths::widthOfSlice
  - rawspeed::Cr2SliceWidthIterator
  - operator*() const
  - '& operator++()'
  - "operator==(const Cr2SliceWidthIterator& a,\n                         const Cr2SliceWidthIterator&
    b)"
  - rawspeed::Cr2SliceWidths::begin
  - rawspeed::Cr2SliceWidths::end
  source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& slicing'
        type: Cr2SliceWidths
      - name: sliceId
        type: int
      item_type: struct
      name: Cr2SliceWidthIterator
      pos:
        line_end: 116
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 130
        line_start: 127
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    - fields:
      - name: '& slicing'
        type: Cr2SliceWidths
      - name: sliceId
        type: int
      item_type: struct
      name: Cr2SliceWidthIterator
      pos:
        line_end: 116
        line_start: 85
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 130
        line_start: 127
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder
  - rawspeed::HasselbladLJpegDecoder::decodeScan
  - rawspeed::HasselbladLJpegDecoder::decode
  - rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder
  - rawspeed::HasselbladLJpegDecoder::decodeScan
  - rawspeed::HasselbladLJpegDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PhaseOneStrip
  - rawspeed::PhaseOneStrip
  - rawspeed::PhaseOneStrip
  - rawspeed::PhaseOneStrip
  source_file: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: n
        type: int
      - name: bs
        type: ByteStream
      item_type: struct
      name: PhaseOneStrip
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    - fields:
      - name: n
        type: int
      - name: bs
        type: ByteStream
      item_type: struct
      name: PhaseOneStrip
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/librawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::SamsungV1Decompressor::SamsungV1Decompressor
  - rawspeed::SamsungV1Decompressor::samsungDiff
  - rawspeed::SamsungV1Decompressor::decompress
  - rawspeed::SamsungV1Decompressor::SamsungV1Decompressor
  - rawspeed::SamsungV1Decompressor::samsungDiff
  - rawspeed::SamsungV1Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: encLen
        type: uint8_t
      - name: diffLen
        type: uint8_t
      item_type: struct
      name: SamsungV1Decompressor::encTableItem
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    - fields:
      - name: encLen
        type: uint8_t
      - name: diffLen
        type: uint8_t
      item_type: struct
      name: SamsungV1Decompressor::encTableItem
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp
    typedefs: []
    union: []
- function_names:
  - AbstractDngDecompressor::decompressThread<1>() const noexcept
  - AbstractDngDecompressor::decompressThread<7>() const noexcept
  - AbstractDngDecompressor::decompressThread<8>() const noexcept
  - AbstractDngDecompressor::decompressThread<9>() const noexcept
  - AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
  - rawspeed::AbstractDngDecompressor::decompressThread
  - rawspeed::AbstractDngDecompressor::decompress
  - AbstractDngDecompressor::decompressThread<1>() const noexcept
  - AbstractDngDecompressor::decompressThread<7>() const noexcept
  - AbstractDngDecompressor::decompressThread<8>() const noexcept
  - AbstractDngDecompressor::decompressThread<9>() const noexcept
  - AbstractDngDecompressor::decompressThread<0x884c>() const noexcept
  - rawspeed::AbstractDngDecompressor::decompressThread
  - rawspeed::AbstractDngDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractLJpegDecoder::getSamplePrecision
  - ~AbstractLJpegDecoder()
  - rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
  - rawspeed::AbstractLJpegDecoder::getPrefixCodeDecoders
  - rawspeed::AbstractLJpegDecoder::getInitialPredictors
  - rawspeed::AbstractLJpegDecoder::getSamplePrecision
  - ~AbstractLJpegDecoder()
  - rawspeed::AbstractLJpegDecoder::erratumImplicitEOIMarkerAfterScan
  - rawspeed::AbstractLJpegDecoder::getPrefixCodeDecoders
  - rawspeed::AbstractLJpegDecoder::getInitialPredictors
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: componentId
        type: uint32_t
      - name: dcTblNo
        type: uint32_t
      - name: superH
        type: uint32_t
      - name: superV
        type: uint32_t
      item_type: struct
      name: JpegComponentInfo
      pos:
        line_end: 62
        line_start: 48
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    - fields:
      - name: componentId
        type: uint32_t
      - name: dcTblNo
        type: uint32_t
      - name: superH
        type: uint32_t
      - name: superV
        type: uint32_t
      item_type: struct
      name: JpegComponentInfo
      pos:
        line_end: 62
        line_start: 48
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - '& operator=(const FujiStrip&) noexcept'
  - '& operator=(FujiStrip&&) noexcept'
  - rawspeed::FujiStrip
  - rawspeed::lineHeight
  - rawspeed::height
  - rawspeed::width
  - rawspeed::numMCUs
  - rawspeed::offsetY
  - rawspeed::offsetX
  - rawspeed::GetGradient
  - rawspeed::fuji_compressed_params::fuji_compressed_params
  - rawspeed::fuji_compressed_params::qTableLookup
  - rawspeed::fuji_compressed_block::fuji_compressed_block
  - rawspeed::fuji_compressed_block::reset
  - rawspeed::fuji_compressed_block::copy_line
  - rawspeed::fuji_compressed_block::copy_line_to_xtrans
  - rawspeed::fuji_compressed_block::copy_line_to_bayer
  - rawspeed::fuji_compressed_block::fuji_zerobits
  - RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int value2)
  - rawspeed::fuji_compressed_block::fuji_decode_sample
  - rawspeed::fuji_compressed_block::fuji_quant_gradient
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
  - rawspeed::fuji_compressed_block::fuji_decode_sample_even
  - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
  - rawspeed::fuji_compressed_block::fuji_extend_generic
  - rawspeed::fuji_compressed_block::fuji_extend_red
  - rawspeed::fuji_compressed_block::fuji_extend_green
  - rawspeed::fuji_compressed_block::fuji_extend_blue
  - rawspeed::fuji_compressed_block::fuji_decode_block
  - rawspeed::fuji_compressed_block::xtrans_decode_block
  - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
  - rawspeed::fuji_compressed_block::fuji_decode_strip
  - rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
  - rawspeed::FujiDecompressorImpl::decompressThread
  - rawspeed::FujiDecompressorImpl::decompress
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - '& operator=(const FujiStrip&) noexcept'
  - '& operator=(FujiStrip&&) noexcept'
  - rawspeed::FujiStrip
  - rawspeed::lineHeight
  - rawspeed::height
  - rawspeed::width
  - rawspeed::numMCUs
  - rawspeed::offsetY
  - rawspeed::offsetX
  - rawspeed::GetGradient
  - rawspeed::fuji_compressed_params::fuji_compressed_params
  - rawspeed::fuji_compressed_params::qTableLookup
  - rawspeed::fuji_compressed_block::fuji_compressed_block
  - rawspeed::fuji_compressed_block::reset
  - rawspeed::fuji_compressed_block::copy_line
  - rawspeed::fuji_compressed_block::copy_line_to_xtrans
  - rawspeed::fuji_compressed_block::copy_line_to_bayer
  - rawspeed::fuji_compressed_block::fuji_zerobits
  - RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int value2)
  - rawspeed::fuji_compressed_block::fuji_decode_sample
  - rawspeed::fuji_compressed_block::fuji_quant_gradient
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
  - rawspeed::fuji_compressed_block::fuji_decode_sample_even
  - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
  - rawspeed::fuji_compressed_block::fuji_extend_generic
  - rawspeed::fuji_compressed_block::fuji_extend_red
  - rawspeed::fuji_compressed_block::fuji_extend_green
  - rawspeed::fuji_compressed_block::fuji_extend_blue
  - rawspeed::fuji_compressed_block::fuji_decode_block
  - rawspeed::fuji_compressed_block::xtrans_decode_block
  - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
  - rawspeed::fuji_compressed_block::fuji_decode_strip
  - rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
  - rawspeed::FujiDecompressorImpl::decompressThread
  - rawspeed::FujiDecompressorImpl::decompress
  - rawspeed::FujiDecompressor::FujiDecompressor
  - rawspeed::FujiDecompressor::decompress
  - FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
  - FujiDecompressor::FujiHeader::operator bool() const
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - '& operator=(const FujiStrip&) noexcept'
  - '& operator=(FujiStrip&&) noexcept'
  - rawspeed::FujiStrip
  - rawspeed::lineHeight
  - rawspeed::height
  - rawspeed::width
  - rawspeed::numMCUs
  - rawspeed::offsetY
  - rawspeed::offsetX
  - rawspeed::GetGradient
  - rawspeed::fuji_compressed_params::fuji_compressed_params
  - rawspeed::fuji_compressed_params::qTableLookup
  - rawspeed::fuji_compressed_block::fuji_compressed_block
  - rawspeed::fuji_compressed_block::reset
  - rawspeed::fuji_compressed_block::copy_line
  - rawspeed::fuji_compressed_block::copy_line_to_xtrans
  - rawspeed::fuji_compressed_block::copy_line_to_bayer
  - rawspeed::fuji_compressed_block::fuji_zerobits
  - RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int value2)
  - rawspeed::fuji_compressed_block::fuji_decode_sample
  - rawspeed::fuji_compressed_block::fuji_quant_gradient
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
  - rawspeed::fuji_compressed_block::fuji_decode_sample_even
  - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
  - rawspeed::fuji_compressed_block::fuji_extend_generic
  - rawspeed::fuji_compressed_block::fuji_extend_red
  - rawspeed::fuji_compressed_block::fuji_extend_green
  - rawspeed::fuji_compressed_block::fuji_extend_blue
  - rawspeed::fuji_compressed_block::fuji_decode_block
  - rawspeed::fuji_compressed_block::xtrans_decode_block
  - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
  - rawspeed::fuji_compressed_block::fuji_decode_strip
  - rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
  - rawspeed::FujiDecompressorImpl::decompressThread
  - rawspeed::FujiDecompressorImpl::decompress
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - rawspeed::FujiStrip
  - '& operator=(const FujiStrip&) noexcept'
  - '& operator=(FujiStrip&&) noexcept'
  - rawspeed::FujiStrip
  - rawspeed::lineHeight
  - rawspeed::height
  - rawspeed::width
  - rawspeed::numMCUs
  - rawspeed::offsetY
  - rawspeed::offsetX
  - rawspeed::GetGradient
  - rawspeed::fuji_compressed_params::fuji_compressed_params
  - rawspeed::fuji_compressed_params::qTableLookup
  - rawspeed::fuji_compressed_block::fuji_compressed_block
  - rawspeed::fuji_compressed_block::reset
  - rawspeed::fuji_compressed_block::copy_line
  - rawspeed::fuji_compressed_block::copy_line_to_xtrans
  - rawspeed::fuji_compressed_block::copy_line_to_bayer
  - rawspeed::fuji_compressed_block::fuji_zerobits
  - RAWSPEED_READNONE fuji_compressed_block::bitDiff(int value1, int value2)
  - rawspeed::fuji_compressed_block::fuji_decode_sample
  - rawspeed::fuji_compressed_block::fuji_quant_gradient
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even_inner
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_odd_inner
  - rawspeed::fuji_compressed_block::fuji_decode_sample_even
  - rawspeed::fuji_compressed_block::fuji_decode_sample_odd
  - rawspeed::fuji_compressed_block::fuji_decode_interpolation_even
  - rawspeed::fuji_compressed_block::fuji_extend_generic
  - rawspeed::fuji_compressed_block::fuji_extend_red
  - rawspeed::fuji_compressed_block::fuji_extend_green
  - rawspeed::fuji_compressed_block::fuji_extend_blue
  - rawspeed::fuji_compressed_block::fuji_decode_block
  - rawspeed::fuji_compressed_block::xtrans_decode_block
  - rawspeed::fuji_compressed_block::fuji_bayer_decode_block
  - rawspeed::fuji_compressed_block::fuji_decode_strip
  - rawspeed::FujiDecompressorImpl::FujiDecompressorImpl
  - rawspeed::FujiDecompressorImpl::decompressThread
  - rawspeed::FujiDecompressorImpl::decompress
  - rawspeed::FujiDecompressor::FujiDecompressor
  - rawspeed::FujiDecompressor::decompress
  - FujiDecompressor::FujiHeader::FujiHeader(ByteStream& bs)
  - FujiDecompressor::FujiHeader::operator bool() const
  source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
  types:
    enum:
    - enumerators:
      - name: R2
      - name: G1
      - name: G5
      - name: B1
      - name: R0
        value: '0'
      - name: R3
      - name: G2
      - name: G6
      - name: B2
      - name: R4
      - name: G3
      - name: B3
      - name: G7
      - name: R1
      - name: G0
      - name: G4
      - name: B0
      - name: B4
      - name: ltotal
      item_type: enum
      name: xt_lines
      pos:
        line_end: 92
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - enumerators:
      - name: R2
      - name: G1
      - name: G5
      - name: B1
      - name: R0
        value: '0'
      - name: R3
      - name: G2
      - name: G6
      - name: B2
      - name: R4
      - name: G3
      - name: B3
      - name: G7
      - name: R1
      - name: G0
      - name: G4
      - name: B0
      - name: B4
      - name: ltotal
      item_type: enum
      name: xt_lines
      pos:
        line_end: 92
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - enumerators:
      - name: R2
      - name: G1
      - name: G5
      - name: B1
      - name: R0
        value: '0'
      - name: R3
      - name: G2
      - name: G6
      - name: B2
      - name: R4
      - name: G3
      - name: B3
      - name: G7
      - name: R1
      - name: G0
      - name: G4
      - name: B0
      - name: B4
      - name: ltotal
      item_type: enum
      name: xt_lines
      pos:
        line_end: 92
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - enumerators:
      - name: R2
      - name: G1
      - name: G5
      - name: B1
      - name: R0
        value: '0'
      - name: R3
      - name: G2
      - name: G6
      - name: B2
      - name: R4
      - name: G3
      - name: B3
      - name: G7
      - name: R1
      - name: G0
      - name: G4
      - name: B0
      - name: B4
      - name: ltotal
      item_type: enum
      name: xt_lines
      pos:
        line_end: 92
        line_start: 72
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    preproc_defs: []
    structs:
    - fields:
      - name: value1
        type: int
      - name: value2
        type: int
      item_type: struct
      name: int_pair
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: qTableLookup(int cur_val) const
        type: int8_t
      - name: q_table
        type: std::vector<int8_t>
      - name: q_point
        type: std::array<int, 5>
      - name: max_bits
        type: int
      - name: min_value
        type: int
      - name: raw_bits
        type: int
      - name: total_values
        type: int
      - name: maxDiff
        type: int
      - name: line_width
        type: uint16_t
      item_type: struct
      name: fuji_compressed_params
      pos:
        line_end: 107
        line_start: 94
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: '& h'
        type: FujiDecompressor::FujiHeader
      - name: n
        type: int
      - name: input
        type: Array1DRef<const uint8_t>
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      item_type: struct
      name: FujiStrip
      pos:
        line_end: 165
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: img
        type: Array2DRef<uint16_t>
      - name: '& header'
        type: FujiDecompressor::FujiHeader
      - name: '& common_info'
        type: fuji_compressed_params
      - name: reset()
        type: void
      - name: pump
        type: Optional<BitStreamerMSB>
      - name: grad_even
        type: std::array<std::array<int_pair, 41>, 3>
      - name: grad_odd
        type: std::array<std::array<int_pair, 41>, 3>
      - name: linealloc
        type: std::vector<uint16_t>
      - name: lines
        type: Array2DRef<uint16_t>
      - name: fuji_decode_strip(const FujiStrip& strip)
        type: void
      - name: copy_line_to_xtrans(const FujiStrip& strip, int cur_line) const
        type: void
      - name: copy_line_to_bayer(const FujiStrip& strip, int cur_line) const
        type: void
      - name: fuji_zerobits(BitStreamerMSB& pump)
        type: int
      - name: bitDiff(int value1, int value2)
        type: int
      - name: "fuji_decode_sample(int grad, int interp_val,\n                                       std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_even(xt_lines c, int col,\n                                            std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_odd(xt_lines c, int col,\n                                           std::array<int_pair,
          41>& grads)"
        type: int
      - name: fuji_quant_gradient(int v1, int v2) const
        type: int
      - name: fuji_decode_interpolation_even_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_odd_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_even(xt_lines c, int col) const
        type: int
      - name: fuji_extend_generic(int start, int end) const
        type: void
      - name: fuji_extend_red() const
        type: void
      - name: fuji_extend_green() const
        type: void
      - name: fuji_extend_blue() const
        type: void
      - name: xtrans_decode_block(int cur_line)
        type: void
      - name: fuji_bayer_decode_block(int cur_line)
        type: void
      item_type: struct
      name: fuji_compressed_block
      pos:
        line_end: 296
        line_start: 242
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: even
        type: int
      - name: odd
        type: int
      item_type: struct
      name: ColorPos
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: a
        type: int
      - name: b
        type: int
      item_type: struct
      name: i_pair
      pos:
        line_end: 739
        line_start: 736
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: value1
        type: int
      - name: value2
        type: int
      item_type: struct
      name: int_pair
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: qTableLookup(int cur_val) const
        type: int8_t
      - name: q_table
        type: std::vector<int8_t>
      - name: q_point
        type: std::array<int, 5>
      - name: max_bits
        type: int
      - name: min_value
        type: int
      - name: raw_bits
        type: int
      - name: total_values
        type: int
      - name: maxDiff
        type: int
      - name: line_width
        type: uint16_t
      item_type: struct
      name: fuji_compressed_params
      pos:
        line_end: 107
        line_start: 94
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: '& h'
        type: FujiDecompressor::FujiHeader
      - name: n
        type: int
      - name: input
        type: Array1DRef<const uint8_t>
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      item_type: struct
      name: FujiStrip
      pos:
        line_end: 165
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: img
        type: Array2DRef<uint16_t>
      - name: '& header'
        type: FujiDecompressor::FujiHeader
      - name: '& common_info'
        type: fuji_compressed_params
      - name: reset()
        type: void
      - name: pump
        type: Optional<BitStreamerMSB>
      - name: grad_even
        type: std::array<std::array<int_pair, 41>, 3>
      - name: grad_odd
        type: std::array<std::array<int_pair, 41>, 3>
      - name: linealloc
        type: std::vector<uint16_t>
      - name: lines
        type: Array2DRef<uint16_t>
      - name: fuji_decode_strip(const FujiStrip& strip)
        type: void
      - name: copy_line_to_xtrans(const FujiStrip& strip, int cur_line) const
        type: void
      - name: copy_line_to_bayer(const FujiStrip& strip, int cur_line) const
        type: void
      - name: fuji_zerobits(BitStreamerMSB& pump)
        type: int
      - name: bitDiff(int value1, int value2)
        type: int
      - name: "fuji_decode_sample(int grad, int interp_val,\n                                       std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_even(xt_lines c, int col,\n                                            std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_odd(xt_lines c, int col,\n                                           std::array<int_pair,
          41>& grads)"
        type: int
      - name: fuji_quant_gradient(int v1, int v2) const
        type: int
      - name: fuji_decode_interpolation_even_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_odd_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_even(xt_lines c, int col) const
        type: int
      - name: fuji_extend_generic(int start, int end) const
        type: void
      - name: fuji_extend_red() const
        type: void
      - name: fuji_extend_green() const
        type: void
      - name: fuji_extend_blue() const
        type: void
      - name: xtrans_decode_block(int cur_line)
        type: void
      - name: fuji_bayer_decode_block(int cur_line)
        type: void
      item_type: struct
      name: fuji_compressed_block
      pos:
        line_end: 296
        line_start: 242
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: even
        type: int
      - name: odd
        type: int
      item_type: struct
      name: ColorPos
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: a
        type: int
      - name: b
        type: int
      item_type: struct
      name: i_pair
      pos:
        line_end: 739
        line_start: 736
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: value1
        type: int
      - name: value2
        type: int
      item_type: struct
      name: int_pair
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: qTableLookup(int cur_val) const
        type: int8_t
      - name: q_table
        type: std::vector<int8_t>
      - name: q_point
        type: std::array<int, 5>
      - name: max_bits
        type: int
      - name: min_value
        type: int
      - name: raw_bits
        type: int
      - name: total_values
        type: int
      - name: maxDiff
        type: int
      - name: line_width
        type: uint16_t
      item_type: struct
      name: fuji_compressed_params
      pos:
        line_end: 107
        line_start: 94
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: '& h'
        type: FujiDecompressor::FujiHeader
      - name: n
        type: int
      - name: input
        type: Array1DRef<const uint8_t>
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      item_type: struct
      name: FujiStrip
      pos:
        line_end: 165
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: img
        type: Array2DRef<uint16_t>
      - name: '& header'
        type: FujiDecompressor::FujiHeader
      - name: '& common_info'
        type: fuji_compressed_params
      - name: reset()
        type: void
      - name: pump
        type: Optional<BitStreamerMSB>
      - name: grad_even
        type: std::array<std::array<int_pair, 41>, 3>
      - name: grad_odd
        type: std::array<std::array<int_pair, 41>, 3>
      - name: linealloc
        type: std::vector<uint16_t>
      - name: lines
        type: Array2DRef<uint16_t>
      - name: fuji_decode_strip(const FujiStrip& strip)
        type: void
      - name: copy_line_to_xtrans(const FujiStrip& strip, int cur_line) const
        type: void
      - name: copy_line_to_bayer(const FujiStrip& strip, int cur_line) const
        type: void
      - name: fuji_zerobits(BitStreamerMSB& pump)
        type: int
      - name: bitDiff(int value1, int value2)
        type: int
      - name: "fuji_decode_sample(int grad, int interp_val,\n                                       std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_even(xt_lines c, int col,\n                                            std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_odd(xt_lines c, int col,\n                                           std::array<int_pair,
          41>& grads)"
        type: int
      - name: fuji_quant_gradient(int v1, int v2) const
        type: int
      - name: fuji_decode_interpolation_even_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_odd_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_even(xt_lines c, int col) const
        type: int
      - name: fuji_extend_generic(int start, int end) const
        type: void
      - name: fuji_extend_red() const
        type: void
      - name: fuji_extend_green() const
        type: void
      - name: fuji_extend_blue() const
        type: void
      - name: xtrans_decode_block(int cur_line)
        type: void
      - name: fuji_bayer_decode_block(int cur_line)
        type: void
      item_type: struct
      name: fuji_compressed_block
      pos:
        line_end: 296
        line_start: 242
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: even
        type: int
      - name: odd
        type: int
      item_type: struct
      name: ColorPos
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: a
        type: int
      - name: b
        type: int
      item_type: struct
      name: i_pair
      pos:
        line_end: 739
        line_start: 736
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: value1
        type: int
      - name: value2
        type: int
      item_type: struct
      name: int_pair
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: qTableLookup(int cur_val) const
        type: int8_t
      - name: q_table
        type: std::vector<int8_t>
      - name: q_point
        type: std::array<int, 5>
      - name: max_bits
        type: int
      - name: min_value
        type: int
      - name: raw_bits
        type: int
      - name: total_values
        type: int
      - name: maxDiff
        type: int
      - name: line_width
        type: uint16_t
      item_type: struct
      name: fuji_compressed_params
      pos:
        line_end: 107
        line_start: 94
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: '& h'
        type: FujiDecompressor::FujiHeader
      - name: n
        type: int
      - name: input
        type: Array1DRef<const uint8_t>
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      - name: RAWSPEED_READONLY
        type: int
      item_type: struct
      name: FujiStrip
      pos:
        line_end: 165
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: img
        type: Array2DRef<uint16_t>
      - name: '& header'
        type: FujiDecompressor::FujiHeader
      - name: '& common_info'
        type: fuji_compressed_params
      - name: reset()
        type: void
      - name: pump
        type: Optional<BitStreamerMSB>
      - name: grad_even
        type: std::array<std::array<int_pair, 41>, 3>
      - name: grad_odd
        type: std::array<std::array<int_pair, 41>, 3>
      - name: linealloc
        type: std::vector<uint16_t>
      - name: lines
        type: Array2DRef<uint16_t>
      - name: fuji_decode_strip(const FujiStrip& strip)
        type: void
      - name: copy_line_to_xtrans(const FujiStrip& strip, int cur_line) const
        type: void
      - name: copy_line_to_bayer(const FujiStrip& strip, int cur_line) const
        type: void
      - name: fuji_zerobits(BitStreamerMSB& pump)
        type: int
      - name: bitDiff(int value1, int value2)
        type: int
      - name: "fuji_decode_sample(int grad, int interp_val,\n                                       std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_even(xt_lines c, int col,\n                                            std::array<int_pair,
          41>& grads)"
        type: int
      - name: "fuji_decode_sample_odd(xt_lines c, int col,\n                                           std::array<int_pair,
          41>& grads)"
        type: int
      - name: fuji_quant_gradient(int v1, int v2) const
        type: int
      - name: fuji_decode_interpolation_even_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_odd_inner(xt_lines c, int col) const
        type: std::pair<int, int>
      - name: fuji_decode_interpolation_even(xt_lines c, int col) const
        type: int
      - name: fuji_extend_generic(int start, int end) const
        type: void
      - name: fuji_extend_red() const
        type: void
      - name: fuji_extend_green() const
        type: void
      - name: fuji_extend_blue() const
        type: void
      - name: xtrans_decode_block(int cur_line)
        type: void
      - name: fuji_bayer_decode_block(int cur_line)
        type: void
      item_type: struct
      name: fuji_compressed_block
      pos:
        line_end: 296
        line_start: 242
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: even
        type: int
      - name: odd
        type: int
      item_type: struct
      name: ColorPos
      pos:
        line_end: 618
        line_start: 615
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    - fields:
      - name: a
        type: int
      - name: b
        type: int
      item_type: struct
      name: i_pair
      pos:
        line_end: 739
        line_start: 736
        source_file: /src/librawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder<>
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h
    - fields:
      - name: '& ht'
        type: PrefixCodeDecoder<>
      - name: initPred
        type: uint16_t
      item_type: struct
      name: PerComponentRecipe
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::KodakDecompressor::KodakDecompressor
  - rawspeed::KodakDecompressor::decodeSegment
  - rawspeed::KodakDecompressor::decompress
  - rawspeed::KodakDecompressor::KodakDecompressor
  - rawspeed::KodakDecompressor::decodeSegment
  - rawspeed::KodakDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::peekMarker
  - rawspeed::advanceToNextMarker
  - rawspeed::getRestartMarkerNumber
  - rawspeed::peekMarker
  - rawspeed::advanceToNextMarker
  - rawspeed::getRestartMarkerNumber
  source_file: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
  types:
    enum:
    - enumerators:
      - name: SOF2
        value: '0xc2'
      - name: SOF1
        value: '0xc1'
      - name: SOF5
        value: '0xc5'
      - name: SOF7
        value: '0xc7'
      - name: SOF9
        value: '0xc9'
      - name: SOF14
        value: '0xce'
      - name: RST0
        value: '0xd0'
      - name: SOF11
        value: '0xcb'
      - name: DHT
        value: '0xc4'
      - name: RST2
        value: '0xd2'
      - name: RST7
        value: '0xd7'
      - name: APP13
        value: '0xed'
      - name: APP0
        value: '0xe0'
      - name: APP11
        value: '0xeb'
      - name: APP2
        value: '0xe2'
      - name: RST5
        value: '0xd5'
      - name: DHP
        value: '0xde'
      - name: APP9
        value: '0xe9'
      - name: DRI
        value: '0xdd'
      - name: APP6
        value: '0xe6'
      - name: JPG13
        value: '0xfd'
      - name: DQT
        value: '0xdb'
      - name: APP4
        value: '0xe4'
      - name: APP15
        value: '0xef'
      - name: EOI
        value: '0xd9'
      - name: SOF0
        value: '0xc0'
      - name: SOF3
        value: '0xc3'
      - name: SOF6
        value: '0xc6'
      - name: JPG
        value: '0xc8'
      - name: SOF15
        value: '0xcf'
      - name: RST1
        value: '0xd1'
      - name: SOF13
        value: '0xcd'
      - name: DAC
        value: '0xcc'
      - name: SOF10
        value: '0xca'
      - name: RST3
        value: '0xd3'
      - name: RST6
        value: '0xd6'
      - name: APP1
        value: '0xe1'
      - name: APP12
        value: '0xec'
      - name: APP10
        value: '0xea'
      - name: RST4
        value: '0xd4'
      - name: EXP
        value: '0xdf'
      - name: FILL
        value: '0xFF'
      - name: APP8
        value: '0xe8'
      - name: TEM
        value: '0x01'
      - name: STUFF
        value: '0x00'
      - name: COM
        value: '0xfe'
      - name: DNL
        value: '0xdc'
      - name: APP7
        value: '0xe7'
      - name: JPG0
        value: '0xf0'
      - name: SOS
        value: '0xda'
      - name: APP5
        value: '0xe5'
      - name: APP14
        value: '0xee'
      - name: SOI
        value: '0xd8'
      - name: APP3
        value: '0xe3'
      item_type: enum
      name: JpegMarker
      pos:
        line_end: 107
        line_start: 35
        source_file: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    - enumerators:
      - name: SOF2
        value: '0xc2'
      - name: SOF1
        value: '0xc1'
      - name: SOF5
        value: '0xc5'
      - name: SOF7
        value: '0xc7'
      - name: SOF9
        value: '0xc9'
      - name: SOF14
        value: '0xce'
      - name: RST0
        value: '0xd0'
      - name: SOF11
        value: '0xcb'
      - name: DHT
        value: '0xc4'
      - name: RST2
        value: '0xd2'
      - name: RST7
        value: '0xd7'
      - name: APP13
        value: '0xed'
      - name: APP0
        value: '0xe0'
      - name: APP11
        value: '0xeb'
      - name: APP2
        value: '0xe2'
      - name: RST5
        value: '0xd5'
      - name: DHP
        value: '0xde'
      - name: APP9
        value: '0xe9'
      - name: DRI
        value: '0xdd'
      - name: APP6
        value: '0xe6'
      - name: JPG13
        value: '0xfd'
      - name: DQT
        value: '0xdb'
      - name: APP4
        value: '0xe4'
      - name: APP15
        value: '0xef'
      - name: EOI
        value: '0xd9'
      - name: SOF0
        value: '0xc0'
      - name: SOF3
        value: '0xc3'
      - name: SOF6
        value: '0xc6'
      - name: JPG
        value: '0xc8'
      - name: SOF15
        value: '0xcf'
      - name: RST1
        value: '0xd1'
      - name: SOF13
        value: '0xcd'
      - name: DAC
        value: '0xcc'
      - name: SOF10
        value: '0xca'
      - name: RST3
        value: '0xd3'
      - name: RST6
        value: '0xd6'
      - name: APP1
        value: '0xe1'
      - name: APP12
        value: '0xec'
      - name: APP10
        value: '0xea'
      - name: RST4
        value: '0xd4'
      - name: EXP
        value: '0xdf'
      - name: FILL
        value: '0xFF'
      - name: APP8
        value: '0xe8'
      - name: TEM
        value: '0x01'
      - name: STUFF
        value: '0x00'
      - name: COM
        value: '0xfe'
      - name: DNL
        value: '0xdc'
      - name: APP7
        value: '0xe7'
      - name: JPG0
        value: '0xf0'
      - name: SOS
        value: '0xda'
      - name: APP5
        value: '0xe5'
      - name: APP14
        value: '0xee'
      - name: SOI
        value: '0xd8'
      - name: APP3
        value: '0xe3'
      item_type: enum
      name: JpegMarker
      pos:
        line_end: 107
        line_start: 35
        source_file: /src/librawspeed/src/librawspeed/decompressors/JpegMarkers.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/KodakDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PentaxDecompressor::PentaxDecompressor
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
  - rawspeed::PentaxDecompressor::decompress
  - rawspeed::PentaxDecompressor::PentaxDecompressor
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern
  - rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder
  - rawspeed::PentaxDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PacketDsc
  - rawspeed::PanasonicV5Decompressor::PanasonicV5Decompressor
  - rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
  - rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock
  - rawspeed::PanasonicV5Decompressor::ProxyStream::ProxyStream
  - '& getStream()'
  - rawspeed::PanasonicV5Decompressor::processPixelPacket
  - rawspeed::PanasonicV5Decompressor::processBlock
  - rawspeed::PanasonicV5Decompressor::decompressInternal
  - rawspeed::PanasonicV5Decompressor::decompress
  - rawspeed::PacketDsc
  - rawspeed::PanasonicV5Decompressor::PanasonicV5Decompressor
  - rawspeed::PanasonicV5Decompressor::chopInputIntoBlocks
  - rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock
  - rawspeed::PanasonicV5Decompressor::ProxyStream::ProxyStream
  - '& getStream()'
  - rawspeed::PanasonicV5Decompressor::processPixelPacket
  - rawspeed::PanasonicV5Decompressor::processBlock
  - rawspeed::PanasonicV5Decompressor::decompressInternal
  - rawspeed::PanasonicV5Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bps
        type: Buffer::size_type
      - name: pixelsPerPacket
        type: int
      item_type: struct
      name: PanasonicV5Decompressor::PacketDsc
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    - fields:
      - name: bps
        type: Buffer::size_type
      - name: pixelsPerPacket
        type: int
      item_type: struct
      name: PanasonicV5Decompressor::PacketDsc
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::BlockDsc
  - rawspeed::pana_cs6_page_decoder
  - rawspeed::nextpixel
  - rawspeed::pana_cs6_page_decoder<12>::fillBuffer
  - rawspeed::pana_cs6_page_decoder<14>::fillBuffer
  - rawspeed::pana_cs6_page_decoder
  - rawspeed::nextpixel
  - rawspeed::pana_cs6_page_decoder<12>::fillBuffer
  - rawspeed::pana_cs6_page_decoder<14>::fillBuffer
  - rawspeed::PanasonicV6Decompressor::PanasonicV6Decompressor
  - rawspeed::PanasonicV6Decompressor::decompressBlock
  - rawspeed::PanasonicV6Decompressor::decompressRow
  - rawspeed::PanasonicV6Decompressor::decompressInternal
  - rawspeed::PanasonicV6Decompressor::decompress
  - rawspeed::BlockDsc
  - rawspeed::pana_cs6_page_decoder
  - rawspeed::nextpixel
  - rawspeed::pana_cs6_page_decoder<12>::fillBuffer
  - rawspeed::pana_cs6_page_decoder<14>::fillBuffer
  - rawspeed::pana_cs6_page_decoder
  - rawspeed::nextpixel
  - rawspeed::pana_cs6_page_decoder<12>::fillBuffer
  - rawspeed::pana_cs6_page_decoder<14>::fillBuffer
  - rawspeed::PanasonicV6Decompressor::PanasonicV6Decompressor
  - rawspeed::PanasonicV6Decompressor::decompressBlock
  - rawspeed::PanasonicV6Decompressor::decompressRow
  - rawspeed::PanasonicV6Decompressor::decompressInternal
  - rawspeed::PanasonicV6Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: BitsPerSample
        type: int
      - name: is14Bit
        type: bool
      - name: PixelsPerBlock
        type: int
      - name: PixelbaseZero
        type: unsigned
      - name: PixelbaseCompare
        type: unsigned
      - name: SpixCompare
        type: unsigned
      - name: PixelMask
        type: unsigned
      - name: BytesPerBlock
        type: int
      item_type: struct
      name: PanasonicV6Decompressor::BlockDsc
      pos:
        line_end: 60
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    - fields:
      - name: BufferSize
        type: int
      - name: pixelbuffer
        type: std::array<uint16_t, BufferSize>
      - name: current
        type: unsigned char
      - name: fillBuffer(ByteStream bs) noexcept
        type: void
      item_type: struct
      name: pana_cs6_page_decoder
      pos:
        line_end: 85
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    - fields:
      - name: BufferSize
        type: int
      - name: pixelbuffer
        type: std::array<uint16_t, BufferSize>
      - name: current
        type: unsigned char
      - name: fillBuffer(ByteStream bs) noexcept
        type: void
      item_type: struct
      name: pana_cs6_page_decoder
      pos:
        line_end: 85
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    - fields:
      - name: BitsPerSample
        type: int
      - name: is14Bit
        type: bool
      - name: PixelsPerBlock
        type: int
      - name: PixelbaseZero
        type: unsigned
      - name: PixelbaseCompare
        type: unsigned
      - name: SpixCompare
        type: unsigned
      - name: PixelMask
        type: unsigned
      - name: BytesPerBlock
        type: int
      item_type: struct
      name: PanasonicV6Decompressor::BlockDsc
      pos:
        line_end: 60
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    - fields:
      - name: BufferSize
        type: int
      - name: pixelbuffer
        type: std::array<uint16_t, BufferSize>
      - name: current
        type: unsigned char
      - name: fillBuffer(ByteStream bs) noexcept
        type: void
      item_type: struct
      name: pana_cs6_page_decoder
      pos:
        line_end: 85
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    - fields:
      - name: BufferSize
        type: int
      - name: pixelbuffer
        type: std::array<uint16_t, BufferSize>
      - name: current
        type: unsigned char
      - name: fillBuffer(ByteStream bs) noexcept
        type: void
      item_type: struct
      name: pana_cs6_page_decoder
      pos:
        line_end: 85
        line_start: 70
        source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp
    typedefs: []
    union: []
- function_names:
  - RLVTABLE
  - decompand
  - readValue
  - RLVTABLE
  - decompand
  - readValue
  - VC5Decompressor::Wavelet::setBandValid(const int band)
  - VC5Decompressor::Wavelet::isBandValid(const int band) const
  - VC5Decompressor::Wavelet::allBandsValid() const
  - rawspeed::convolute
  - rawspeed::convolute
  - "VC5Decompressor::Wavelet::reconstructPass(\n    const Array2DRef<const int16_t>
    high,\n    const Array2DRef<const int16_t> low) noexcept"
  - "VC5Decompressor::Wavelet::combineLowHighPass(\n    const Array2DRef<const int16_t>
    low, const Array2DRef<const int16_t> high,\n    int descaleShift, bool clampUint
    = false,\n    [[maybe_unused]] bool finalWavelet = false) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n    ErrorLog&
    errLog, bool& exceptionThrow) noexcept"
  - rawspeed::VC5Decompressor::VC5Decompressor
  - rawspeed::VC5Decompressor::initPrefixCodeDecoder
  - rawspeed::VC5Decompressor::initVC5LogTable
  - rawspeed::VC5Decompressor::parseVC5
  - "VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n    ErrorLog&
    errLog, bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n                                                   ByteStream
    bs,\n                                                   uint16_t lowpassPrecision_)"
  - VC5Decompressor::Wavelet::LowPassBand::decode() const noexcept
  - VC5Decompressor::Wavelet::HighPassBand::decode() const
  - rawspeed::DeRLVer::decodeNextPixelGroup
  - rawspeed::DeRLVer::DeRLVer
  - rawspeed::DeRLVer::verifyIsAtEnd
  - rawspeed::DeRLVer::decode
  - rawspeed::VC5Decompressor::parseLargeCodeblock
  - rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
  - rawspeed::VC5Decompressor::decodeThread
  - rawspeed::VC5Decompressor::decode
  - rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
  - rawspeed::VC5Decompressor::combineFinalLowpassBands
  - rawspeed::VC5Decompressor::getRLV
  - VC5Decompressor::Wavelet::AbstractBand::anchor() const
  - VC5Decompressor::Wavelet::setBandValid(const int band)
  - VC5Decompressor::Wavelet::isBandValid(const int band) const
  - VC5Decompressor::Wavelet::allBandsValid() const
  - rawspeed::convolute
  - rawspeed::convolute
  - "VC5Decompressor::Wavelet::reconstructPass(\n    const Array2DRef<const int16_t>
    high,\n    const Array2DRef<const int16_t> low) noexcept"
  - "VC5Decompressor::Wavelet::combineLowHighPass(\n    const Array2DRef<const int16_t>
    low, const Array2DRef<const int16_t> high,\n    int descaleShift, bool clampUint
    = false,\n    [[maybe_unused]] bool finalWavelet = false) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowpassReconstructionTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createHighpassReconstructionTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::\n    createLowHighPassCombiningTask(const
    bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::ReconstructableBand::createDecodingTasks(\n    ErrorLog&
    errLog, bool& exceptionThrow) noexcept"
  - rawspeed::VC5Decompressor::VC5Decompressor
  - rawspeed::VC5Decompressor::initPrefixCodeDecoder
  - rawspeed::VC5Decompressor::initVC5LogTable
  - rawspeed::VC5Decompressor::parseVC5
  - "VC5Decompressor::Wavelet::AbstractDecodeableBand::createDecodingTasks(\n    ErrorLog&
    errLog, bool& exceptionThrown) noexcept"
  - "VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_,\n                                                   ByteStream
    bs,\n                                                   uint16_t lowpassPrecision_)"
  - VC5Decompressor::Wavelet::LowPassBand::decode() const noexcept
  - VC5Decompressor::Wavelet::HighPassBand::decode() const
  - rawspeed::DeRLVer::decodeNextPixelGroup
  - rawspeed::DeRLVer::DeRLVer
  - rawspeed::DeRLVer::verifyIsAtEnd
  - rawspeed::DeRLVer::decode
  - rawspeed::VC5Decompressor::parseLargeCodeblock
  - rawspeed::VC5Decompressor::createWaveletBandDecodingTasks
  - rawspeed::VC5Decompressor::decodeThread
  - rawspeed::VC5Decompressor::decode
  - rawspeed::VC5Decompressor::combineFinalLowpassBandsImpl
  - rawspeed::VC5Decompressor::combineFinalLowpassBands
  - rawspeed::VC5Decompressor::getRLV
  - VC5Decompressor::Wavelet::AbstractBand::anchor() const
  source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: uint_fast8_t
      - name: bits
        type: uint32_t
      - name: count
        type: uint16_t
      - name: value
        type: uint16_t
      item_type: struct
      name: RLV
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: size
        type: uint_fast8_t
      - name: bits
        type: uint32_t
      - name: count
        type: uint16_t
      - name: value
        type: uint16_t
      item_type: struct
      name: RLV
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields: []
      item_type: struct
      name: ConvolutionParams
      pos:
        line_end: 178
        line_start: 160
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: First
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Middle
      pos:
        line_end: 171
        line_start: 167
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Last
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields: []
      item_type: struct
      name: ConvolutionParams
      pos:
        line_end: 178
        line_start: 160
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: First
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Middle
      pos:
        line_end: 171
        line_start: 167
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Last
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields: []
      item_type: struct
      name: ConvolutionParams
      pos:
        line_end: 178
        line_start: 160
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: First
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Middle
      pos:
        line_end: 171
        line_start: 167
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Last
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields: []
      item_type: struct
      name: ConvolutionParams
      pos:
        line_end: 178
        line_start: 160
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: First
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Middle
      pos:
        line_end: 171
        line_start: 167
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    - fields:
      - name: mul_even
        type: std::array<int, 4>
      - name: mul_odd
        type: std::array<int, 4>
      - name: coord_shift
        type: int
      item_type: struct
      name: Last
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::HasselbladDecompressor::HasselbladDecompressor
  - rawspeed::HasselbladDecompressor::getBits
  - rawspeed::HasselbladDecompressor::decompress
  - rawspeed::HasselbladDecompressor::HasselbladDecompressor
  - rawspeed::HasselbladDecompressor::getBits
  - rawspeed::HasselbladDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::Cr2SliceIterator
  - operator*() const
  - '& operator++()'
  - operator==(const Cr2SliceIterator& a, const Cr2SliceIterator& b)
  - rawspeed::Cr2OutputTileIterator
  - operator*() const
  - '& operator++()'
  - "RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n                                           const
    Cr2OutputTileIterator& b)"
  - rawspeed::Cr2VerticalOutputStripIterator::coalesce
  - rawspeed::Cr2VerticalOutputStripIterator::Cr2VerticalOutputStripIterator
  - operator*() const
  - '& operator++()'
  - "operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
    Cr2VerticalOutputStripIterator& b)"
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
  - rawspeed::Dsc
  - rawspeed::Dsc
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompress
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::evaluateConsecutiveTiles
  - rawspeed::Cr2SliceIterator
  - operator*() const
  - '& operator++()'
  - operator==(const Cr2SliceIterator& a, const Cr2SliceIterator& b)
  - rawspeed::Cr2OutputTileIterator
  - operator*() const
  - '& operator++()'
  - "RAWSPEED_READONLY operator==(const Cr2OutputTileIterator& a,\n                                           const
    Cr2OutputTileIterator& b)"
  - rawspeed::Cr2VerticalOutputStripIterator::coalesce
  - rawspeed::Cr2VerticalOutputStripIterator::Cr2VerticalOutputStripIterator
  - operator*() const
  - '& operator++()'
  - "operator==(const Cr2VerticalOutputStripIterator& a,\n                         const
    Cr2VerticalOutputStripIterator& b)"
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getSlices
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips
  - rawspeed::Dsc
  - rawspeed::Dsc
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecodersImpl
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getPrefixCodeDecoders
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::getInitialPreds
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y
  - rawspeed::Cr2Decompressor<PrefixCodeDecoder>::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
  types:
    enum:
    - enumerators:
      - name: ContinuesColumn
      - name: BeginsNewColumn
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - enumerators:
      - name: ContinuesColumn
      - name: BeginsNewColumn
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - enumerators:
      - name: ContinuesColumn
      - name: BeginsNewColumn
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - enumerators:
      - name: ContinuesColumn
      - name: BeginsNewColumn
      - name: Invalid
      item_type: enum
      name: TileSequenceStatus
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    preproc_defs: []
    structs:
    - fields:
      - name: frameHeight
        type: int
      - name: widthIter
        type: Cr2SliceWidthIterator
      - name: RAWSPEED_READONLY
        type: value_type
      item_type: struct
      name: Cr2SliceIterator
      pos:
        line_end: 101
        line_start: 75
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: '& imgDim'
        type: iPoint2D
      - name: sliceIter
        type: Cr2SliceIterator
      - name: outPos
        type: iPoint2D
      - name: sliceRow
        type: int
      item_type: struct
      name: Cr2OutputTileIterator
      pos:
        line_end: 153
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: N_COMP
        type: int
      - name: X_S_F
        type: int
      - name: Y_S_F
        type: int
      - name: subSampled
        type: bool
      - name: sliceColStep
        type: int
      - name: pixelsPerGroup
        type: int
      - name: groupSize
        type: int
      - name: cpp
        type: int
      - name: colsPerGroup
        type: int
      item_type: struct
      name: Dsc
      pos:
        line_end: 274
        line_start: 249
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: N_COMP
        type: int
      - name: X_S_F
        type: int
      - name: Y_S_F
        type: int
      - name: subSampled
        type: bool
      - name: sliceColStep
        type: int
      - name: pixelsPerGroup
        type: int
      - name: groupSize
        type: int
      - name: cpp
        type: int
      - name: colsPerGroup
        type: int
      item_type: struct
      name: Dsc
      pos:
        line_end: 274
        line_start: 249
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: frameHeight
        type: int
      - name: widthIter
        type: Cr2SliceWidthIterator
      - name: RAWSPEED_READONLY
        type: value_type
      item_type: struct
      name: Cr2SliceIterator
      pos:
        line_end: 101
        line_start: 75
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: '& imgDim'
        type: iPoint2D
      - name: sliceIter
        type: Cr2SliceIterator
      - name: outPos
        type: iPoint2D
      - name: sliceRow
        type: int
      item_type: struct
      name: Cr2OutputTileIterator
      pos:
        line_end: 153
        line_start: 103
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: N_COMP
        type: int
      - name: X_S_F
        type: int
      - name: Y_S_F
        type: int
      - name: subSampled
        type: bool
      - name: sliceColStep
        type: int
      - name: pixelsPerGroup
        type: int
      - name: groupSize
        type: int
      - name: cpp
        type: int
      - name: colsPerGroup
        type: int
      item_type: struct
      name: Dsc
      pos:
        line_end: 274
        line_start: 249
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    - fields:
      - name: N_COMP
        type: int
      - name: X_S_F
        type: int
      - name: Y_S_F
        type: int
      - name: subSampled
        type: bool
      - name: sliceColStep
        type: int
      - name: pixelsPerGroup
        type: int
      - name: groupSize
        type: int
      - name: cpp
        type: int
      - name: colsPerGroup
        type: int
      item_type: struct
      name: Dsc
      pos:
        line_end: 274
        line_start: 249
        source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/OlympusDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::init_source
  - rawspeed::fill_input_buffer
  - rawspeed::skip_input_data
  - rawspeed::term_source
  - rawspeed::jpeg_mem_src_int
  - rawspeed::my_error_throw
  - rawspeed::init_source
  - rawspeed::fill_input_buffer
  - rawspeed::skip_input_data
  - rawspeed::term_source
  - rawspeed::jpeg_mem_src_int
  - rawspeed::my_error_throw
  - rawspeed::JpegDecompressStruct
  - rawspeed::JpegDecompressStruct
  - "&\n  operator=(const JpegDecompressStruct&) noexcept"
  - '& operator=(JpegDecompressStruct&&) noexcept'
  - rawspeed::JpegDecompressStruct
  - ~JpegDecompressStruct()
  - rawspeed::JpegDecompressor::decode
  - rawspeed::init_source
  - rawspeed::fill_input_buffer
  - rawspeed::skip_input_data
  - rawspeed::term_source
  - rawspeed::jpeg_mem_src_int
  - rawspeed::my_error_throw
  - rawspeed::init_source
  - rawspeed::fill_input_buffer
  - rawspeed::skip_input_data
  - rawspeed::term_source
  - rawspeed::jpeg_mem_src_int
  - rawspeed::my_error_throw
  - rawspeed::JpegDecompressStruct
  - rawspeed::JpegDecompressStruct
  - "&\n  operator=(const JpegDecompressStruct&) noexcept"
  - '& operator=(JpegDecompressStruct&&) noexcept'
  - rawspeed::JpegDecompressStruct
  - ~JpegDecompressStruct()
  - rawspeed::JpegDecompressor::decode
  source_file: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: jerr
        type: struct jpeg_error_mgr
      item_type: struct
      name: JpegDecompressor::JpegDecompressStruct
      pos:
        line_end: 125
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    - fields:
      - name: jerr
        type: struct jpeg_error_mgr
      item_type: struct
      name: JpegDecompressor::JpegDecompressStruct
      pos:
        line_end: 125
        line_start: 109
        source_file: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::SonyArw2Decompressor::SonyArw2Decompressor
  - rawspeed::SonyArw2Decompressor::decompressRow
  - rawspeed::SonyArw2Decompressor::decompressThread
  - rawspeed::SonyArw2Decompressor::decompress
  - rawspeed::SonyArw2Decompressor::SonyArw2Decompressor
  - rawspeed::SonyArw2Decompressor::decompressRow
  - rawspeed::SonyArw2Decompressor::decompressThread
  - rawspeed::SonyArw2Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder
  - rawspeed::Cr2LJpegDecoder::decodeScan
  - rawspeed::Cr2LJpegDecoder::decode
  - rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder
  - rawspeed::Cr2LJpegDecoder::decodeScan
  - rawspeed::Cr2LJpegDecoder::decode
  source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CrwDecompressor::CrwDecompressor
  - rawspeed::CrwDecompressor::makeDecoder
  - rawspeed::CrwDecompressor::initHuffTables
  - rawspeed::CrwDecompressor::decodeBlock
  - rawspeed::CrwDecompressor::decompress
  - rawspeed::CrwDecompressor::CrwDecompressor
  - rawspeed::CrwDecompressor::makeDecoder
  - rawspeed::CrwDecompressor::initHuffTables
  - rawspeed::CrwDecompressor::decodeBlock
  - rawspeed::CrwDecompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator&(VC5Tag LHS, VC5Tag RHS)
  - rawspeed::matches
  - rawspeed::is
  - operator-(VC5Tag tag)
  - rawspeed::VC5Decompressor::BandData
  - rawspeed::VC5Decompressor::Wavelet::AbstractBand
  - ~AbstractBand()
  - rawspeed::VC5Decompressor::Wavelet::ReconstructableBand
  - rawspeed::VC5Decompressor::Wavelet::AbstractDecodeableBand
  - rawspeed::VC5Decompressor::Wavelet::HighPassBand
  - rawspeed::VC5Decompressor::Wavelet::getValidBandMask
  - operator&(VC5Tag LHS, VC5Tag RHS)
  - rawspeed::matches
  - rawspeed::is
  - operator-(VC5Tag tag)
  - rawspeed::VC5Decompressor::BandData
  - rawspeed::VC5Decompressor::Wavelet::AbstractBand
  - ~AbstractBand()
  - rawspeed::VC5Decompressor::Wavelet::ReconstructableBand
  - rawspeed::VC5Decompressor::Wavelet::AbstractDecodeableBand
  - rawspeed::VC5Decompressor::Wavelet::HighPassBand
  - rawspeed::VC5Decompressor::Wavelet::getValidBandMask
  source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
  types:
    enum:
    - enumerators:
      - name: ChannelCount
        value: '0x000c'
      - name: LowpassPrecision
        value: '0x0023'
      - name: ChannelNumber
        value: '0x003e'
      - name: PatternHeight
        value: '0x006b'
      - name: SMALL_CHUNK
        value: '0x4000'
      - name: SubbandCount
        value: '0x000E'
      - name: ImageFormat
        value: '0x0054'
      - name: UniqueImageIdentifier
        value: '0x4004'
      - name: ComponentsPerSample
        value: '0x006c'
      - name: Optional
        value: int16_t(0x8000U)
      - name: NoTag
        value: '0x0'
      - name: ImageWidth
        value: '0x0014'
      - name: SubbandNumber
        value: '0x0030'
      - name: MaxBitsPerComponent
        value: '0x0066'
      - name: PrescaleShift
        value: '0x006d'
      - name: LargeCodeblock
        value: '0x6000'
      - name: ImageHeight
        value: '0x0015'
      - name: Quantization
        value: '0x0035'
      - name: LARGE_CHUNK
        value: '0x2000'
      - name: PatternWidth
        value: '0x006a'
      item_type: enum
      name: VC5Tag
      pos:
        line_end: 74
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - enumerators:
      - name: ChannelCount
        value: '0x000c'
      - name: LowpassPrecision
        value: '0x0023'
      - name: ChannelNumber
        value: '0x003e'
      - name: PatternHeight
        value: '0x006b'
      - name: SMALL_CHUNK
        value: '0x4000'
      - name: SubbandCount
        value: '0x000E'
      - name: ImageFormat
        value: '0x0054'
      - name: UniqueImageIdentifier
        value: '0x4004'
      - name: ComponentsPerSample
        value: '0x006c'
      - name: Optional
        value: int16_t(0x8000U)
      - name: NoTag
        value: '0x0'
      - name: ImageWidth
        value: '0x0014'
      - name: SubbandNumber
        value: '0x0030'
      - name: MaxBitsPerComponent
        value: '0x0066'
      - name: PrescaleShift
        value: '0x006d'
      - name: LargeCodeblock
        value: '0x6000'
      - name: ImageHeight
        value: '0x0015'
      - name: Quantization
        value: '0x0035'
      - name: LARGE_CHUNK
        value: '0x2000'
      - name: PatternWidth
        value: '0x006a'
      item_type: enum
      name: VC5Tag
      pos:
        line_end: 74
        line_start: 50
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    preproc_defs: []
    structs:
    - fields:
      - name: storage
        type: std::vector<int16_t, DefaultInitAllocatorAdaptor<int16_t>>
      - name: description
        type: Array2DRef<int16_t>
      item_type: struct
      name: BandData
      pos:
        line_end: 137
        line_start: 131
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: '& wavelet'
        type: Wavelet
      - name: data
        type: Optional<BandData>
      - name: anchor() const
        type: void
      - name: "createDecodingTasks(ErrorLog& errLog,\n                                       bool&
          exceptionThrown) noexcept"
        type: void
      item_type: struct
      name: AbstractBand
      pos:
        line_end: 153
        line_start: 145
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: clampUint
        type: bool
      - name: finalWavelet
        type: bool
      - name: intermediates
        type: "struct {\n        Optional<BandData> lowpass;\n        Optional<BandData>
          highpass;\n      }"
      - name: createLowpassReconstructionTask(const bool& exceptionThrown) noexcept
        type: void
      - name: createHighpassReconstructionTask(const bool& exceptionThrown) noexcept
        type: void
      - name: createLowHighPassCombiningTask(const bool& exceptionThrown) noexcept
        type: void
      - name: "createDecodingTasks(ErrorLog& errLog,\n                               bool&
          exceptionThrown) noexcept override"
        type: void
      item_type: struct
      name: ReconstructableBand
      pos:
        line_end: 172
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: input
        type: Array1DRef<const uint8_t>
      - name: decode() const
        type: BandData
      - name: "createDecodingTasks(ErrorLog& errLog,\n                               bool&
          exceptionThrown) noexcept final"
        type: void
      item_type: struct
      name: AbstractDecodeableBand
      pos:
        line_end: 181
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: lowpassPrecision
        type: uint16_t
      - name: decode() const noexcept override
        type: BandData
      item_type: struct
      name: LowPassBand
      pos:
        line_end: 186
        line_start: 182
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: '& decoder'
        type: Optional<PrefixCodeDecoder>
      - name: quant
        type: int16_t
      - name: decode() const override
        type: BandData
      item_type: struct
      name: HighPassBand
      pos:
        line_end: 195
        line_start: 187
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: wavelets
        type: std::array<Wavelet, numWaveletLevels + 1>
      item_type: struct
      name: Channel
      pos:
        line_end: 219
        line_start: 217
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: storage
        type: std::vector<int16_t, DefaultInitAllocatorAdaptor<int16_t>>
      - name: description
        type: Array2DRef<int16_t>
      item_type: struct
      name: BandData
      pos:
        line_end: 137
        line_start: 131
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: '& wavelet'
        type: Wavelet
      - name: data
        type: Optional<BandData>
      - name: anchor() const
        type: void
      - name: "createDecodingTasks(ErrorLog& errLog,\n                                       bool&
          exceptionThrown) noexcept"
        type: void
      item_type: struct
      name: AbstractBand
      pos:
        line_end: 153
        line_start: 145
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: clampUint
        type: bool
      - name: finalWavelet
        type: bool
      - name: intermediates
        type: "struct {\n        Optional<BandData> lowpass;\n        Optional<BandData>
          highpass;\n      }"
      - name: createLowpassReconstructionTask(const bool& exceptionThrown) noexcept
        type: void
      - name: createHighpassReconstructionTask(const bool& exceptionThrown) noexcept
        type: void
      - name: createLowHighPassCombiningTask(const bool& exceptionThrown) noexcept
        type: void
      - name: "createDecodingTasks(ErrorLog& errLog,\n                               bool&
          exceptionThrown) noexcept override"
        type: void
      item_type: struct
      name: ReconstructableBand
      pos:
        line_end: 172
        line_start: 154
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: input
        type: Array1DRef<const uint8_t>
      - name: decode() const
        type: BandData
      - name: "createDecodingTasks(ErrorLog& errLog,\n                               bool&
          exceptionThrown) noexcept final"
        type: void
      item_type: struct
      name: AbstractDecodeableBand
      pos:
        line_end: 181
        line_start: 173
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: lowpassPrecision
        type: uint16_t
      - name: decode() const noexcept override
        type: BandData
      item_type: struct
      name: LowPassBand
      pos:
        line_end: 186
        line_start: 182
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: '& decoder'
        type: Optional<PrefixCodeDecoder>
      - name: quant
        type: int16_t
      - name: decode() const override
        type: BandData
      item_type: struct
      name: HighPassBand
      pos:
        line_end: 195
        line_start: 187
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    - fields:
      - name: wavelets
        type: std::array<Wavelet, numWaveletLevels + 1>
      item_type: struct
      name: Channel
      pos:
        line_end: 219
        line_start: 217
        source_file: /src/librawspeed/src/librawspeed/decompressors/VC5Decompressor.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/NikonDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractSamsungDecompressor::AbstractSamsungDecompressor
  - rawspeed::AbstractSamsungDecompressor::AbstractSamsungDecompressor
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::LJpegDecoder::LJpegDecoder
  - rawspeed::LJpegDecoder::decode
  - rawspeed::LJpegDecoder::decodeScan
  - rawspeed::LJpegDecoder::LJpegDecoder
  - rawspeed::LJpegDecoder::decode
  - rawspeed::LJpegDecoder::decodeScan
  source_file: /src/librawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/Cr2Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::JpegDecompressor::JpegDecompressor
  - rawspeed::JpegDecompressor::JpegDecompressor
  source_file: /src/librawspeed/src/librawspeed/decompressors/JpegDecompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractLJpegDecoder::anchor
  - rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder
  - rawspeed::AbstractLJpegDecoder::decodeSOI
  - rawspeed::AbstractLJpegDecoder::parseSOF
  - rawspeed::AbstractLJpegDecoder::parseSOS
  - rawspeed::AbstractLJpegDecoder::parseDHT
  - rawspeed::AbstractLJpegDecoder::parseDRI
  - rawspeed::AbstractLJpegDecoder::getNextMarker
  - rawspeed::AbstractLJpegDecoder::anchor
  - rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder
  - rawspeed::AbstractLJpegDecoder::decodeSOI
  - rawspeed::AbstractLJpegDecoder::parseSOF
  - rawspeed::AbstractLJpegDecoder::parseSOS
  - rawspeed::AbstractLJpegDecoder::parseDHT
  - rawspeed::AbstractLJpegDecoder::parseDRI
  - rawspeed::AbstractLJpegDecoder::getNextMarker
  source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: DRI
        type: bool
      - name: DHT
        type: bool
      - name: SOF
        type: bool
      - name: SOS
        type: bool
      item_type: struct
      name: FoundMarkers
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    - fields:
      - name: DRI
        type: bool
      - name: DHT
        type: bool
      - name: SOF
        type: bool
      - name: SOS
        type: bool
      item_type: struct
      name: FoundMarkers
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
    rhs)"
  - rawspeed::SamsungV2Decompressor::getDiff
  - rawspeed::SamsungV2Decompressor::SamsungV2Decompressor
  - rawspeed::SamsungV2Decompressor::prepareBaselineValues
  - rawspeed::SamsungV2Decompressor::decodeDiffLengths
  - rawspeed::SamsungV2Decompressor::decodeDifferences
  - rawspeed::SamsungV2Decompressor::processBlock
  - rawspeed::SamsungV2Decompressor::decompressRow
  - rawspeed::SamsungV2Decompressor::decompress
  - "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator|(SamsungV2Decompressor::OptFlags lhs,\n          SamsungV2Decompressor::OptFlags
    rhs)"
  - "operator&(SamsungV2Decompressor::OptFlags lhs,\n                         SamsungV2Decompressor::OptFlags
    rhs)"
  - rawspeed::SamsungV2Decompressor::getDiff
  - rawspeed::SamsungV2Decompressor::SamsungV2Decompressor
  - rawspeed::SamsungV2Decompressor::prepareBaselineValues
  - rawspeed::SamsungV2Decompressor::decodeDiffLengths
  - rawspeed::SamsungV2Decompressor::decodeDifferences
  - rawspeed::SamsungV2Decompressor::processBlock
  - rawspeed::SamsungV2Decompressor::decompressRow
  - rawspeed::SamsungV2Decompressor::decompress
  source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
  types:
    enum:
    - enumerators:
      - name: NONE
        value: 0U
      - name: QP
        value: 1U << 2U
      - name: SKIP
        value: 1U << 0U
      - name: MV
        value: 1U << 1U
      - name: ALL
        value: SKIP | MV | QP
      item_type: enum
      name: SamsungV2Decompressor::OptFlags
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    - enumerators:
      - name: NONE
        value: 0U
      - name: QP
        value: 1U << 2U
      - name: SKIP
        value: 1U << 0U
      - name: MV
        value: 1U << 1U
      - name: ALL
        value: SKIP | MV | QP
      item_type: enum
      name: SamsungV2Decompressor::OptFlags
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/librawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::UncompressedDecompressor::sanityCheck
  - rawspeed::UncompressedDecompressor::sanityCheck
  - rawspeed::UncompressedDecompressor::bytesPerLine
  - rawspeed::UncompressedDecompressor::UncompressedDecompressor
  - rawspeed::UncompressedDecompressor::decodePackedFP
  - rawspeed::UncompressedDecompressor::decodePackedInt
  - rawspeed::UncompressedDecompressor::readUncompressedRaw
  - rawspeed::UncompressedDecompressor::decode8BitRaw
  - rawspeed::UncompressedDecompressor::decode12BitRawWithControl
  - rawspeed::UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
  - rawspeed::UncompressedDecompressor::sanityCheck
  - rawspeed::UncompressedDecompressor::sanityCheck
  - rawspeed::UncompressedDecompressor::bytesPerLine
  - rawspeed::UncompressedDecompressor::UncompressedDecompressor
  - rawspeed::UncompressedDecompressor::decodePackedFP
  - rawspeed::UncompressedDecompressor::decodePackedInt
  - rawspeed::UncompressedDecompressor::readUncompressedRaw
  - rawspeed::UncompressedDecompressor::decode8BitRaw
  - rawspeed::UncompressedDecompressor::decode12BitRawWithControl
  - rawspeed::UncompressedDecompressor::decode12BitRawUnpackedLeftAligned
  source_file: /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DeflateDecompressor::DeflateDecompressor
  - rawspeed::decodeDeltaBytes
  - rawspeed::decodeDeltaBytes
  - rawspeed::decodeFPDeltaRow
  - rawspeed::decodeFPDeltaRow
  - rawspeed::DeflateDecompressor::decode
  - rawspeed::DeflateDecompressor::DeflateDecompressor
  - rawspeed::decodeDeltaBytes
  - rawspeed::decodeDeltaBytes
  - rawspeed::decodeFPDeltaRow
  - rawspeed::decodeFPDeltaRow
  - rawspeed::DeflateDecompressor::decode
  source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: StorageType
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary16>
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary24>
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary32>
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields: []
      item_type: struct
      name: StorageType
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary16>
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary24>
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    - fields:
      - name: padding_bytes
        type: int
      item_type: struct
      name: StorageType<ieee_754_2008::Binary32>
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/librawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::CrwDecoder::isCRW
  - rawspeed::CrwDecoder::CrwDecoder
  - rawspeed::CrwDecoder::decodeRawInternal
  - rawspeed::CrwDecoder::checkSupportInternal
  - rawspeed::RAWSPEED_READNONE::canonEv
  - rawspeed::CrwDecoder::decodeMetaDataInternal
  - rawspeed::CrwDecoder::isCRW
  - rawspeed::CrwDecoder::CrwDecoder
  - rawspeed::CrwDecoder::decodeRawInternal
  - rawspeed::CrwDecoder::checkSupportInternal
  - rawspeed::RAWSPEED_READNONE::canonEv
  - rawspeed::CrwDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PefDecoder::isAppropriateDecoder
  - rawspeed::PefDecoder::decodeRawInternal
  - rawspeed::PefDecoder::decodeMetaDataInternal
  - rawspeed::PefDecoder::isAppropriateDecoder
  - rawspeed::PefDecoder::decodeRawInternal
  - rawspeed::PefDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/PefDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RafDecoder::isRAF
  - rawspeed::RafDecoder::isAppropriateDecoder
  - rawspeed::RafDecoder::decodeRawInternal
  - rawspeed::RafDecoder::checkSupportInternal
  - rawspeed::RafDecoder::applyCorrections
  - rawspeed::RafDecoder::decodeMetaDataInternal
  - rawspeed::RafDecoder::isCompressed
  - rawspeed::RafDecoder::getDefaultCrop
  - rawspeed::RafDecoder::isRAF
  - rawspeed::RafDecoder::isAppropriateDecoder
  - rawspeed::RafDecoder::decodeRawInternal
  - rawspeed::RafDecoder::checkSupportInternal
  - rawspeed::RafDecoder::applyCorrections
  - rawspeed::RafDecoder::decodeMetaDataInternal
  - rawspeed::RafDecoder::isCompressed
  - rawspeed::RafDecoder::getDefaultCrop
  source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::NakedDecoder::getDecoderVersion
  - rawspeed::NakedDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractTiffDecoder::AbstractTiffDecoder
  - rawspeed::AbstractTiffDecoder::getRootIFD
  - rawspeed::AbstractTiffDecoder::checkCameraSupported
  - rawspeed::AbstractTiffDecoder::setMetaData
  - rawspeed::AbstractTiffDecoder::setMetaData
  - rawspeed::AbstractTiffDecoder::checkSupportInternal
  - rawspeed::AbstractTiffDecoder::AbstractTiffDecoder
  - rawspeed::AbstractTiffDecoder::getRootIFD
  - rawspeed::AbstractTiffDecoder::checkCameraSupported
  - rawspeed::AbstractTiffDecoder::setMetaData
  - rawspeed::AbstractTiffDecoder::setMetaData
  - rawspeed::AbstractTiffDecoder::checkSupportInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RafDecoder::RafDecoder
  - rawspeed::RafDecoder::getDecoderVersion
  - rawspeed::RafDecoder::RafDecoder
  - rawspeed::RafDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/RafDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::StiDecoder::StiDecoder
  - rawspeed::StiDecoder::getDecoderVersion
  - rawspeed::StiDecoder::StiDecoder
  - rawspeed::StiDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/StiDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawDecoder::RawDecoder
  - rawspeed::RawDecoder::decodeUncompressed
  - rawspeed::RawDecoder::handleCameraSupport
  - rawspeed::RawDecoder::checkCameraSupported
  - rawspeed::RawDecoder::setMetaData
  - rawspeed::RawDecoder::getDefaultCrop
  - rawspeed::RawDecoder::decodeRaw
  - rawspeed::RawDecoder::decodeMetaData
  - rawspeed::RawDecoder::checkSupport
  - rawspeed::RawDecoder::RawDecoder
  - rawspeed::RawDecoder::decodeUncompressed
  - rawspeed::RawDecoder::handleCameraSupport
  - rawspeed::RawDecoder::checkCameraSupported
  - rawspeed::RawDecoder::setMetaData
  - rawspeed::RawDecoder::getDefaultCrop
  - rawspeed::RawDecoder::decodeRaw
  - rawspeed::RawDecoder::decodeMetaData
  - rawspeed::RawDecoder::checkSupport
  source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::AbstractTiffDecoder::anchor
  - rawspeed::AbstractTiffDecoder::getIFDWithLargestImage
  - rawspeed::AbstractTiffDecoder::anchor
  - rawspeed::AbstractTiffDecoder::getIFDWithLargestImage
  source_file: /src/librawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::PefDecoder::PefDecoder
  - rawspeed::PefDecoder::getDecoderVersion
  - rawspeed::PefDecoder::PefDecoder
  - rawspeed::PefDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/PefDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::SrwDecoder::SrwDecoder
  - rawspeed::SrwDecoder::getDecoderVersion
  - rawspeed::SrwDecoder::SrwDecoder
  - rawspeed::SrwDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DcsDecoder::isAppropriateDecoder
  - rawspeed::DcsDecoder::checkImageDimensions
  - rawspeed::DcsDecoder::decodeRawInternal
  - rawspeed::DcsDecoder::decodeMetaDataInternal
  - rawspeed::DcsDecoder::isAppropriateDecoder
  - rawspeed::DcsDecoder::checkImageDimensions
  - rawspeed::DcsDecoder::decodeRawInternal
  - rawspeed::DcsDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::NakedDecoder::NakedDecoder
  - rawspeed::getAsBitOrder
  - rawspeed::getAsBitOrder
  - rawspeed::NakedDecoder::parseHints
  - rawspeed::NakedDecoder::decodeRawInternal
  - rawspeed::NakedDecoder::checkSupportInternal
  - rawspeed::NakedDecoder::decodeMetaDataInternal
  - rawspeed::NakedDecoder::NakedDecoder
  - rawspeed::getAsBitOrder
  - rawspeed::getAsBitOrder
  - rawspeed::NakedDecoder::parseHints
  - rawspeed::NakedDecoder::decodeRawInternal
  - rawspeed::NakedDecoder::checkSupportInternal
  - rawspeed::NakedDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/NakedDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cr2Decoder::Cr2Decoder
  - rawspeed::Cr2Decoder::getDecoderVersion
  - rawspeed::Cr2Decoder::Cr2Decoder
  - rawspeed::Cr2Decoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MefDecoder::MefDecoder
  - rawspeed::MefDecoder::getDecoderVersion
  - rawspeed::MefDecoder::MefDecoder
  - rawspeed::MefDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/MefDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MosDecoder::isAppropriateDecoder
  - rawspeed::MosDecoder::MosDecoder
  - rawspeed::MosDecoder::getXMPTag
  - rawspeed::MosDecoder::decodeRawInternal
  - rawspeed::MosDecoder::checkSupportInternal
  - rawspeed::MosDecoder::decodeMetaDataInternal
  - rawspeed::MosDecoder::isAppropriateDecoder
  - rawspeed::MosDecoder::MosDecoder
  - rawspeed::MosDecoder::getXMPTag
  - rawspeed::MosDecoder::decodeRawInternal
  - rawspeed::MosDecoder::checkSupportInternal
  - rawspeed::MosDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/MosDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::KdcDecoder::isAppropriateDecoder
  - rawspeed::KdcDecoder::getInputBuffer
  - rawspeed::KdcDecoder::decodeRawInternal
  - rawspeed::KdcDecoder::decodeMetaDataInternal
  - rawspeed::KdcDecoder::isAppropriateDecoder
  - rawspeed::KdcDecoder::getInputBuffer
  - rawspeed::KdcDecoder::decodeRawInternal
  - rawspeed::KdcDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DcrDecoder::isAppropriateDecoder
  - rawspeed::DcrDecoder::checkImageDimensions
  - rawspeed::DcrDecoder::decodeRawInternal
  - rawspeed::DcrDecoder::decodeMetaDataInternal
  - rawspeed::DcrDecoder::isAppropriateDecoder
  - rawspeed::DcrDecoder::checkImageDimensions
  - rawspeed::DcrDecoder::decodeRawInternal
  - rawspeed::DcrDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::CrwDecoder::getDecoderVersion
  - rawspeed::CrwDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/CrwDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Rw2Decoder::Rw2Decoder
  - rawspeed::Rw2Decoder::getDecoderVersion
  - rawspeed::Rw2Decoder::Rw2Decoder
  - rawspeed::Rw2Decoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~RawDecoder()
  - rawspeed::RawDecoder::getRootIFD
  - operator bool() const
  - ~RawDecoder()
  - rawspeed::RawDecoder::getRootIFD
  - operator bool() const
  source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: h
        type: uint32_t
      - name: offset
        type: uint32_t
      - name: count
        type: uint32_t
      item_type: struct
      name: RawDecoder::RawSlice
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    - fields:
      - name: h
        type: uint32_t
      - name: offset
        type: uint32_t
      - name: count
        type: uint32_t
      item_type: struct
      name: RawDecoder::RawSlice
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoder.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::StiDecoder::isAppropriateDecoder
  - rawspeed::StiDecoder::decodeRawInternal
  - rawspeed::StiDecoder::DecodeUncompressed
  - rawspeed::StiDecoder::decodeMetaDataInternal
  - rawspeed::StiDecoder::isAppropriateDecoder
  - rawspeed::StiDecoder::decodeRawInternal
  - rawspeed::StiDecoder::DecodeUncompressed
  - rawspeed::StiDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/StiDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ErfDecoder::ErfDecoder
  - rawspeed::ErfDecoder::getDecoderVersion
  - rawspeed::ErfDecoder::ErfDecoder
  - rawspeed::ErfDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::NefDecoder::NefDecoder
  - rawspeed::NefDecoder::getDecoderVersion
  - rawspeed::NefDecoder::NefDecoder
  - rawspeed::NefDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: NefSlice
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    - fields: []
      item_type: struct
      name: NefSlice
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::SimpleTiffDecoder::SimpleTiffDecoder
  - rawspeed::SimpleTiffDecoder::SimpleTiffDecoder
  source_file: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ArwDecoder::isAppropriateDecoder
  - rawspeed::ArwDecoder::decodeSRF
  - rawspeed::ArwDecoder::decodeTransitionalArw
  - rawspeed::ArwDecoder::decodeCurve
  - rawspeed::ArwDecoder::decodeRawInternal
  - rawspeed::ArwDecoder::DecodeUncompressed
  - rawspeed::ArwDecoder::DecodeLJpeg
  - rawspeed::ArwDecoder::DecodeARW2
  - rawspeed::ArwDecoder::ParseA100WB
  - rawspeed::ArwDecoder::decodeMetaDataInternal
  - rawspeed::ArwDecoder::SonyDecrypt
  - rawspeed::ArwDecoder::GetWB
  - rawspeed::ArwDecoder::isAppropriateDecoder
  - rawspeed::ArwDecoder::decodeSRF
  - rawspeed::ArwDecoder::decodeTransitionalArw
  - rawspeed::ArwDecoder::decodeCurve
  - rawspeed::ArwDecoder::decodeRawInternal
  - rawspeed::ArwDecoder::DecodeUncompressed
  - rawspeed::ArwDecoder::DecodeLJpeg
  - rawspeed::ArwDecoder::DecodeARW2
  - rawspeed::ArwDecoder::ParseA100WB
  - rawspeed::ArwDecoder::decodeMetaDataInternal
  - rawspeed::ArwDecoder::SonyDecrypt
  - rawspeed::ArwDecoder::GetWB
  source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::IiqDecoder::IiqOffset
  - rawspeed::IiqDecoder::IiqOffset
  - rawspeed::IiqDecoder::IiqDecoder
  - rawspeed::IiqDecoder::getDecoderVersion
  - rawspeed::IiqDecoder::IiqOffset
  - rawspeed::IiqDecoder::IiqOffset
  - rawspeed::IiqDecoder::IiqDecoder
  - rawspeed::IiqDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: n
        type: uint32_t
      - name: offset
        type: uint32_t
      item_type: struct
      name: IiqOffset
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    - fields:
      - name: n
        type: uint32_t
      - name: offset
        type: uint32_t
      item_type: struct
      name: IiqOffset
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::RawDecoderException::anchor
  - rawspeed::RawDecoderException::anchor
  source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::NefDecoder::isAppropriateDecoder
  - rawspeed::NefDecoder::decodeRawInternal
  - rawspeed::NefDecoder::D100IsCompressed
  - rawspeed::NefDecoder::NEFIsUncompressed
  - rawspeed::NefDecoder::NEFIsUncompressedRGB
  - rawspeed::NefDecoder::DecodeUncompressed
  - rawspeed::NefDecoder::readCoolpixSplitRaw
  - rawspeed::NefDecoder::DecodeD100Uncompressed
  - rawspeed::NefDecoder::DecodeSNefUncompressed
  - rawspeed::NefDecoder::checkSupportInternal
  - rawspeed::NefDecoder::getBitPerSample
  - rawspeed::NefDecoder::getMode
  - rawspeed::NefDecoder::getExtendedMode
  - rawspeed::NefDecoder::parseWhiteBalance
  - rawspeed::NefDecoder::decodeMetaDataInternal
  - rawspeed::NefDecoder::DecodeNikonSNef
  - SQR
  - rawspeed::NefDecoder::gammaCurve
  - rawspeed::NefDecoder::isAppropriateDecoder
  - rawspeed::NefDecoder::decodeRawInternal
  - rawspeed::NefDecoder::D100IsCompressed
  - rawspeed::NefDecoder::NEFIsUncompressed
  - rawspeed::NefDecoder::NEFIsUncompressedRGB
  - rawspeed::NefDecoder::DecodeUncompressed
  - rawspeed::NefDecoder::readCoolpixSplitRaw
  - rawspeed::NefDecoder::DecodeD100Uncompressed
  - rawspeed::NefDecoder::DecodeSNefUncompressed
  - rawspeed::NefDecoder::checkSupportInternal
  - rawspeed::NefDecoder::getBitPerSample
  - rawspeed::NefDecoder::getMode
  - rawspeed::NefDecoder::getExtendedMode
  - rawspeed::NefDecoder::parseWhiteBalance
  - rawspeed::NefDecoder::decodeMetaDataInternal
  - rawspeed::NefDecoder::DecodeNikonSNef
  - SQR
  - rawspeed::NefDecoder::gammaCurve
  source_file: /src/librawspeed/src/librawspeed/decoders/NefDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Rw2Decoder::isAppropriateDecoder
  - rawspeed::getPanasonicTiffVector
  - rawspeed::DecompressorV8Params
  - rawspeed::DecompressorV8Params::validate
  - rawspeed::DecompressorV8Params::DecompressorV8Params
  - rawspeed::populateGammaLUT
  - rawspeed::getInputStrips
  - rawspeed::getPanasonicTiffVector
  - rawspeed::DecompressorV8Params
  - rawspeed::DecompressorV8Params::validate
  - rawspeed::DecompressorV8Params::DecompressorV8Params
  - rawspeed::populateGammaLUT
  - rawspeed::getInputStrips
  - rawspeed::Rw2Decoder::decodeRawV8
  - rawspeed::Rw2Decoder::decodeRawInternal
  - rawspeed::Rw2Decoder::checkSupportInternal
  - rawspeed::Rw2Decoder::parseCFA
  - rawspeed::Rw2Decoder::getRaw
  - rawspeed::Rw2Decoder::decodeMetaDataInternal
  - rawspeed::Rw2Decoder::guessMode
  - rawspeed::Rw2Decoder::getDefaultCrop
  - rawspeed::Rw2Decoder::isAppropriateDecoder
  - rawspeed::getPanasonicTiffVector
  - rawspeed::DecompressorV8Params
  - rawspeed::DecompressorV8Params::validate
  - rawspeed::DecompressorV8Params::DecompressorV8Params
  - rawspeed::populateGammaLUT
  - rawspeed::getInputStrips
  - rawspeed::getPanasonicTiffVector
  - rawspeed::DecompressorV8Params
  - rawspeed::DecompressorV8Params::validate
  - rawspeed::DecompressorV8Params::DecompressorV8Params
  - rawspeed::populateGammaLUT
  - rawspeed::getInputStrips
  - rawspeed::Rw2Decoder::decodeRawV8
  - rawspeed::Rw2Decoder::decodeRawInternal
  - rawspeed::Rw2Decoder::checkSupportInternal
  - rawspeed::Rw2Decoder::parseCFA
  - rawspeed::Rw2Decoder::getRaw
  - rawspeed::Rw2Decoder::decodeMetaDataInternal
  - rawspeed::Rw2Decoder::guessMode
  - rawspeed::Rw2Decoder::getDefaultCrop
  source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: stripByteOffsets
        type: std::vector<uint32_t>
      - name: stripLineOffsets
        type: std::vector<uint32_t>
      - name: stripBitLengths
        type: std::vector<uint32_t>
      - name: stripWidths
        type: std::vector<uint16_t>
      - name: stripHeights
        type: std::vector<uint16_t>
      - name: horizontalStripCount
        type: uint16_t
      - name: verticalStripCount
        type: uint16_t
      - name: initialPrediction
        type: PanasonicV8Decompressor::Bayer2x2
      - name: shiftDown
        type: std::vector<uint16_t>
      - name: gammaClipVal
        type: uint16_t
      - name: validate() const
        type: void
      item_type: struct
      name: DecompressorV8Params
      pos:
        line_end: 109
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    - fields:
      - name: stripByteOffsets
        type: std::vector<uint32_t>
      - name: stripLineOffsets
        type: std::vector<uint32_t>
      - name: stripBitLengths
        type: std::vector<uint32_t>
      - name: stripWidths
        type: std::vector<uint16_t>
      - name: stripHeights
        type: std::vector<uint16_t>
      - name: horizontalStripCount
        type: uint16_t
      - name: verticalStripCount
        type: uint16_t
      - name: initialPrediction
        type: PanasonicV8Decompressor::Bayer2x2
      - name: shiftDown
        type: std::vector<uint16_t>
      - name: gammaClipVal
        type: uint16_t
      - name: validate() const
        type: void
      item_type: struct
      name: DecompressorV8Params
      pos:
        line_end: 109
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    - fields:
      - name: stripByteOffsets
        type: std::vector<uint32_t>
      - name: stripLineOffsets
        type: std::vector<uint32_t>
      - name: stripBitLengths
        type: std::vector<uint32_t>
      - name: stripWidths
        type: std::vector<uint16_t>
      - name: stripHeights
        type: std::vector<uint16_t>
      - name: horizontalStripCount
        type: uint16_t
      - name: verticalStripCount
        type: uint16_t
      - name: initialPrediction
        type: PanasonicV8Decompressor::Bayer2x2
      - name: shiftDown
        type: std::vector<uint16_t>
      - name: gammaClipVal
        type: uint16_t
      - name: validate() const
        type: void
      item_type: struct
      name: DecompressorV8Params
      pos:
        line_end: 109
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    - fields:
      - name: stripByteOffsets
        type: std::vector<uint32_t>
      - name: stripLineOffsets
        type: std::vector<uint32_t>
      - name: stripBitLengths
        type: std::vector<uint32_t>
      - name: stripWidths
        type: std::vector<uint16_t>
      - name: stripHeights
        type: std::vector<uint16_t>
      - name: horizontalStripCount
        type: uint16_t
      - name: verticalStripCount
        type: uint16_t
      - name: initialPrediction
        type: PanasonicV8Decompressor::Bayer2x2
      - name: shiftDown
        type: std::vector<uint16_t>
      - name: gammaClipVal
        type: uint16_t
      - name: validate() const
        type: void
      item_type: struct
      name: DecompressorV8Params
      pos:
        line_end: 109
        line_start: 88
        source_file: /src/librawspeed/src/librawspeed/decoders/Rw2Decoder.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::MrwDecoder::getDecoderVersion
  - rawspeed::MrwDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::SimpleTiffDecoder::anchor
  - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
  - rawspeed::SimpleTiffDecoder::anchor
  - rawspeed::SimpleTiffDecoder::prepareForRawDecoding
  source_file: /src/librawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DngDecoder::getDecoderVersion
  - rawspeed::DngDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::SrwDecoder::isAppropriateDecoder
  - rawspeed::SrwDecoder::decodeRawInternal
  - rawspeed::SrwDecoder::getMode
  - rawspeed::SrwDecoder::checkSupportInternal
  - rawspeed::SrwDecoder::decodeMetaDataInternal
  - rawspeed::SrwDecoder::isAppropriateDecoder
  - rawspeed::SrwDecoder::decodeRawInternal
  - rawspeed::SrwDecoder::getMode
  - rawspeed::SrwDecoder::checkSupportInternal
  - rawspeed::SrwDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::Cr2Decoder::isAppropriateDecoder
  - rawspeed::Cr2Decoder::decodeOldFormat
  - rawspeed::Cr2Decoder::decodeNewFormat
  - rawspeed::Cr2Decoder::decodeRawInternal
  - rawspeed::Cr2Decoder::checkSupportInternal
  - rawspeed::deduceColorDataFormat
  - rawspeed::getWhiteBalanceOffsetInColorData
  - rawspeed::getBlackAndWhiteLevelOffsetsInColorData
  - rawspeed::shouldRescaleBlackLevels
  - rawspeed::deduceColorDataFormat
  - rawspeed::getWhiteBalanceOffsetInColorData
  - rawspeed::getBlackAndWhiteLevelOffsetsInColorData
  - rawspeed::shouldRescaleBlackLevels
  - rawspeed::Cr2Decoder::decodeCanonColorData
  - rawspeed::Cr2Decoder::parseWhiteBalance
  - rawspeed::Cr2Decoder::decodeMetaDataInternal
  - rawspeed::Cr2Decoder::isSubSampled
  - rawspeed::Cr2Decoder::getSubSampling
  - rawspeed::Cr2Decoder::getHue
  - rawspeed::Cr2Decoder::sRawInterpolate
  - rawspeed::Cr2Decoder::isAppropriateDecoder
  - rawspeed::Cr2Decoder::decodeOldFormat
  - rawspeed::Cr2Decoder::decodeNewFormat
  - rawspeed::Cr2Decoder::decodeRawInternal
  - rawspeed::Cr2Decoder::checkSupportInternal
  - rawspeed::deduceColorDataFormat
  - rawspeed::getWhiteBalanceOffsetInColorData
  - rawspeed::getBlackAndWhiteLevelOffsetsInColorData
  - rawspeed::shouldRescaleBlackLevels
  - rawspeed::deduceColorDataFormat
  - rawspeed::getWhiteBalanceOffsetInColorData
  - rawspeed::getBlackAndWhiteLevelOffsetsInColorData
  - rawspeed::shouldRescaleBlackLevels
  - rawspeed::Cr2Decoder::decodeCanonColorData
  - rawspeed::Cr2Decoder::parseWhiteBalance
  - rawspeed::Cr2Decoder::decodeMetaDataInternal
  - rawspeed::Cr2Decoder::isSubSampled
  - rawspeed::Cr2Decoder::getSubSampling
  - rawspeed::Cr2Decoder::getHue
  - rawspeed::Cr2Decoder::sRawInterpolate
  source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
  types:
    enum:
    - enumerators:
      - name: ColorData1
      - name: ColorData4
      - name: ColorData5
      - name: ColorData2
      - name: ColorData3
      - name: ColorData6
      - name: ColorData7
      - name: ColorData8
      item_type: enum
      name: ColorDataFormat
      pos:
        line_end: 239
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    - enumerators:
      - name: ColorData1
      - name: ColorData4
      - name: ColorData5
      - name: ColorData2
      - name: ColorData3
      - name: ColorData6
      - name: ColorData7
      - name: ColorData8
      item_type: enum
      name: ColorDataFormat
      pos:
        line_end: 239
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    - enumerators:
      - name: ColorData1
      - name: ColorData4
      - name: ColorData5
      - name: ColorData2
      - name: ColorData3
      - name: ColorData6
      - name: ColorData7
      - name: ColorData8
      item_type: enum
      name: ColorDataFormat
      pos:
        line_end: 239
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    - enumerators:
      - name: ColorData1
      - name: ColorData4
      - name: ColorData5
      - name: ColorData2
      - name: ColorData3
      - name: ColorData6
      - name: ColorData7
      - name: ColorData8
      item_type: enum
      name: ColorDataFormat
      pos:
        line_end: 239
        line_start: 230
        source_file: /src/librawspeed/src/librawspeed/decoders/Cr2Decoder.cpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ThreefrDecoder::isAppropriateDecoder
  - rawspeed::ThreefrDecoder::decodeRawInternal
  - rawspeed::ThreefrDecoder::DecodeUncompressed
  - rawspeed::ThreefrDecoder::decodeMetaDataInternal
  - rawspeed::ThreefrDecoder::isAppropriateDecoder
  - rawspeed::ThreefrDecoder::decodeRawInternal
  - rawspeed::ThreefrDecoder::DecodeUncompressed
  - rawspeed::ThreefrDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MrwDecoder::MrwDecoder
  - rawspeed::MrwDecoder::isMRW
  - rawspeed::MrwDecoder::parseHeader
  - rawspeed::MrwDecoder::decodeRawInternal
  - rawspeed::MrwDecoder::checkSupportInternal
  - rawspeed::MrwDecoder::decodeMetaDataInternal
  - rawspeed::MrwDecoder::MrwDecoder
  - rawspeed::MrwDecoder::isMRW
  - rawspeed::MrwDecoder::parseHeader
  - rawspeed::MrwDecoder::decodeRawInternal
  - rawspeed::MrwDecoder::checkSupportInternal
  - rawspeed::MrwDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/MrwDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::OrfDecoder::OrfDecoder
  - rawspeed::OrfDecoder::getDecoderVersion
  - rawspeed::OrfDecoder::OrfDecoder
  - rawspeed::OrfDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThrowRDE
  - ThrowRDE
  source_file: /src/librawspeed/src/librawspeed/decoders/RawDecoderException.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MefDecoder::isAppropriateDecoder
  - rawspeed::MefDecoder::checkImageDimensions
  - rawspeed::MefDecoder::decodeRawInternal
  - rawspeed::MefDecoder::decodeMetaDataInternal
  - rawspeed::MefDecoder::isAppropriateDecoder
  - rawspeed::MefDecoder::checkImageDimensions
  - rawspeed::MefDecoder::decodeRawInternal
  - rawspeed::MefDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/MefDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::MosDecoder::getDecoderVersion
  - rawspeed::MosDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/MosDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::RAWSPEED_READONLY::isAppropriateDecoder
  - rawspeed::DngDecoder::DngDecoder
  - rawspeed::DngDecoder::dropUnsuportedChunks
  - rawspeed::DngDecoder::parseACTIVEAREA
  - rawspeed::getDNGCFAPatternAsCFAColor
  - rawspeed::getDNGCFAPatternAsCFAColor
  - rawspeed::DngDecoder::parseCFA
  - rawspeed::DngDecoder::parseColorMatrix
  - rawspeed::DngDecoder::getTilingDescription
  - rawspeed::DngDecoder::decodeData
  - rawspeed::DngDecoder::decodeRawInternal
  - rawspeed::DngDecoder::handleMetadata
  - rawspeed::DngDecoder::parseWhiteBalance
  - rawspeed::DngDecoder::decodeMetaDataInternal
  - rawspeed::DngDecoder::checkSupportInternal
  - rawspeed::DngDecoder::decodeMaskedAreas
  - rawspeed::DngDecoder::decodeBlackLevels
  - rawspeed::DngDecoder::setBlack
  - rawspeed::RAWSPEED_READONLY::isAppropriateDecoder
  - rawspeed::DngDecoder::DngDecoder
  - rawspeed::DngDecoder::dropUnsuportedChunks
  - rawspeed::DngDecoder::parseACTIVEAREA
  - rawspeed::getDNGCFAPatternAsCFAColor
  - rawspeed::getDNGCFAPatternAsCFAColor
  - rawspeed::DngDecoder::parseCFA
  - rawspeed::DngDecoder::parseColorMatrix
  - rawspeed::DngDecoder::getTilingDescription
  - rawspeed::DngDecoder::decodeData
  - rawspeed::DngDecoder::decodeRawInternal
  - rawspeed::DngDecoder::handleMetadata
  - rawspeed::DngDecoder::parseWhiteBalance
  - rawspeed::DngDecoder::decodeMetaDataInternal
  - rawspeed::DngDecoder::checkSupportInternal
  - rawspeed::DngDecoder::decodeMaskedAreas
  - rawspeed::DngDecoder::decodeBlackLevels
  - rawspeed::DngDecoder::setBlack
  source_file: /src/librawspeed/src/librawspeed/decoders/DngDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::IiqDecoder::isAppropriateDecoder
  - rawspeed::IiqDecoder::isAppropriateDecoder
  - rawspeed::IiqDecoder::computeSripes
  - rawspeed::getAsIIQFormat
  - rawspeed::getAsIIQFormat
  - rawspeed::IiqDecoder::decodeRawInternal
  - rawspeed::IiqDecoder::CorrectPhaseOneC
  - rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
  - rawspeed::IiqDecoder::PhaseOneFlatField
  - rawspeed::IiqDecoder::checkSupportInternal
  - rawspeed::IiqDecoder::decodeMetaDataInternal
  - rawspeed::IiqDecoder::correctSensorDefects
  - rawspeed::IiqDecoder::handleBadPixel
  - rawspeed::IiqDecoder::correctBadColumn
  - rawspeed::IiqDecoder::isAppropriateDecoder
  - rawspeed::IiqDecoder::isAppropriateDecoder
  - rawspeed::IiqDecoder::computeSripes
  - rawspeed::getAsIIQFormat
  - rawspeed::getAsIIQFormat
  - rawspeed::IiqDecoder::decodeRawInternal
  - rawspeed::IiqDecoder::CorrectPhaseOneC
  - rawspeed::IiqDecoder::CorrectQuadrantMultipliersCombined
  - rawspeed::IiqDecoder::PhaseOneFlatField
  - rawspeed::IiqDecoder::checkSupportInternal
  - rawspeed::IiqDecoder::decodeMetaDataInternal
  - rawspeed::IiqDecoder::correctSensorDefects
  - rawspeed::IiqDecoder::handleBadPixel
  - rawspeed::IiqDecoder::correctBadColumn
  source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
  types:
    enum:
    - enumerators:
      - name: RAW_1
      - name: IIQ_S
      - name: IIQ_L
      - name: IIQ_Sv2
      - name: RAW_2
      - name: IIQ_L16
      item_type: enum
      name: IIQFormat
      pos:
        line_end: 127
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - enumerators:
      - name: RAW_1
      - name: IIQ_S
      - name: IIQ_L
      - name: IIQ_Sv2
      - name: RAW_2
      - name: IIQ_L16
      item_type: enum
      name: IIQFormat
      pos:
        line_end: 127
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - enumerators:
      - name: LUMA
      - name: CHROMA
      item_type: enum
      name: IiqDecoder::IiqCorr
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - enumerators:
      - name: RAW_1
      - name: IIQ_S
      - name: IIQ_L
      - name: IIQ_Sv2
      - name: RAW_2
      - name: IIQ_L16
      item_type: enum
      name: IIQFormat
      pos:
        line_end: 127
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - enumerators:
      - name: RAW_1
      - name: IIQ_S
      - name: IIQ_L
      - name: IIQ_Sv2
      - name: RAW_2
      - name: IIQ_L16
      item_type: enum
      name: IIQFormat
      pos:
        line_end: 127
        line_start: 119
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    - enumerators:
      - name: LUMA
      - name: CHROMA
      item_type: enum
      name: IiqDecoder::IiqCorr
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librawspeed/src/librawspeed/decoders/IiqDecoder.cpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ArwDecoder::ArwDecoder
  - rawspeed::ArwDecoder::getDecoderVersion
  - rawspeed::ArwDecoder::ArwDecoder
  - rawspeed::ArwDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/ArwDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ErfDecoder::isAppropriateDecoder
  - rawspeed::ErfDecoder::checkImageDimensions
  - rawspeed::ErfDecoder::decodeRawInternal
  - rawspeed::ErfDecoder::decodeMetaDataInternal
  - rawspeed::ErfDecoder::isAppropriateDecoder
  - rawspeed::ErfDecoder::checkImageDimensions
  - rawspeed::ErfDecoder::decodeRawInternal
  - rawspeed::ErfDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/ErfDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::ThreefrDecoder::ThreefrDecoder
  - rawspeed::ThreefrDecoder::getDecoderVersion
  - rawspeed::ThreefrDecoder::ThreefrDecoder
  - rawspeed::ThreefrDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/ThreefrDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::KdcDecoder::KdcDecoder
  - rawspeed::KdcDecoder::getDecoderVersion
  - rawspeed::KdcDecoder::KdcDecoder
  - rawspeed::KdcDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/KdcDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DcrDecoder::DcrDecoder
  - rawspeed::DcrDecoder::getDecoderVersion
  - rawspeed::DcrDecoder::DcrDecoder
  - rawspeed::DcrDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/DcrDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::OrfDecoder::isAppropriateDecoder
  - rawspeed::OrfDecoder::handleSlices
  - rawspeed::OrfDecoder::decodeRawInternal
  - rawspeed::OrfDecoder::getBitsPerPixel
  - rawspeed::OrfDecoder::decodeUncompressedInterleaved
  - rawspeed::OrfDecoder::decodeUncompressed
  - rawspeed::OrfDecoder::parseCFA
  - rawspeed::OrfDecoder::decodeMetaDataInternal
  - rawspeed::OrfDecoder::isAppropriateDecoder
  - rawspeed::OrfDecoder::handleSlices
  - rawspeed::OrfDecoder::decodeRawInternal
  - rawspeed::OrfDecoder::getBitsPerPixel
  - rawspeed::OrfDecoder::decodeUncompressedInterleaved
  - rawspeed::OrfDecoder::decodeUncompressed
  - rawspeed::OrfDecoder::parseCFA
  - rawspeed::OrfDecoder::decodeMetaDataInternal
  source_file: /src/librawspeed/src/librawspeed/decoders/OrfDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::DcsDecoder::DcsDecoder
  - rawspeed::DcsDecoder::getDecoderVersion
  - rawspeed::DcsDecoder::DcsDecoder
  - rawspeed::DcsDecoder::getDecoderVersion
  source_file: /src/librawspeed/src/librawspeed/decoders/DcsDecoder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD5Test::MD5Test
  - MD5Test::SetUp
  - MD5Test::anchor
  - TEST_P
  - TEST_P
  source_file: /src/librawspeed/src/utilities/rstest/MD5Test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - ~MD5Hasher() noexcept
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - '& operator=(const MD5Hasher&)'
  - '& operator=(MD5Hasher&&) noexcept'
  - rawspeed::md5::BufferCoalescer::FullBufferRef
  - rawspeed::md5::BufferCoalescer::take_block_impl
  - rawspeed::md5::BufferCoalescer::take_block_impl
  - rawspeed::md5::BufferCoalescer::length
  - rawspeed::md5::BufferCoalescer::bytesAvaliable
  - rawspeed::md5::BufferCoalescer::blockIsEmpty
  - rawspeed::md5::BufferCoalescer::blockIsFull
  - rawspeed::md5::BufferCoalescer::reset
  - rawspeed::md5::BufferCoalescer::take_block
  - rawspeed::md5::BufferCoalescer::getAsFullBufferRef
  - rawspeed::md5::MD5::reset
  - rawspeed::md5::MD5::bytesAvaliableInBlock
  - rawspeed::md5::MD5::blockIsEmpty
  - rawspeed::md5::MD5::blockIsFull
  - rawspeed::md5::MD5::MD5
  - ~MD5() noexcept
  - rawspeed::md5::MD5::MD5
  - rawspeed::md5::MD5::MD5
  - '& operator=(const MD5&)'
  - '& operator=(MD5&&) noexcept'
  - rawspeed::md5::MD5::compressFullBlock
  - '&

    MD5::take_block(Array1DRef<const T> message) noexcept'
  - '&

    MD5::take_full_block(Array1DRef<const T> message) noexcept'
  - "& MD5::take(const T* message,\n                                                     size_t
    len) noexcept"
  - rawspeed::md5::MD5::flush
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - ~MD5Hasher() noexcept
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - rawspeed::md5::MD5Hasher::MD5Hasher
  - '& operator=(const MD5Hasher&)'
  - '& operator=(MD5Hasher&&) noexcept'
  - rawspeed::md5::BufferCoalescer::FullBufferRef
  - rawspeed::md5::BufferCoalescer::take_block_impl
  - rawspeed::md5::BufferCoalescer::take_block_impl
  - rawspeed::md5::BufferCoalescer::length
  - rawspeed::md5::BufferCoalescer::bytesAvaliable
  - rawspeed::md5::BufferCoalescer::blockIsEmpty
  - rawspeed::md5::BufferCoalescer::blockIsFull
  - rawspeed::md5::BufferCoalescer::reset
  - rawspeed::md5::BufferCoalescer::take_block
  - rawspeed::md5::BufferCoalescer::getAsFullBufferRef
  - rawspeed::md5::MD5::reset
  - rawspeed::md5::MD5::bytesAvaliableInBlock
  - rawspeed::md5::MD5::blockIsEmpty
  - rawspeed::md5::MD5::blockIsFull
  - rawspeed::md5::MD5::MD5
  - ~MD5() noexcept
  - rawspeed::md5::MD5::MD5
  - rawspeed::md5::MD5::MD5
  - '& operator=(const MD5&)'
  - '& operator=(MD5&&) noexcept'
  - rawspeed::md5::MD5::compressFullBlock
  - '&

    MD5::take_block(Array1DRef<const T> message) noexcept'
  - '&

    MD5::take_full_block(Array1DRef<const T> message) noexcept'
  - "& MD5::take(const T* message,\n                                                     size_t
    len) noexcept"
  - rawspeed::md5::MD5::flush
  source_file: /src/librawspeed/src/utilities/rstest/md5.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: block_length
        type: int
      item_type: struct
      name: NoBuffer
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    - fields:
      - name: '* block'
        type: uint8_t
      - name: block_length
        type: int
      item_type: struct
      name: FullBufferRef
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    - fields:
      - name: block
        type: MD5Hasher::block_type
      - name: block_length
        type: int
      item_type: struct
      name: CoalescingBuffer
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    - fields:
      - name: block_length
        type: int
      item_type: struct
      name: NoBuffer
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    - fields:
      - name: '* block'
        type: uint8_t
      - name: block_length
        type: int
      item_type: struct
      name: FullBufferRef
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    - fields:
      - name: block
        type: MD5Hasher::block_type
      - name: block_length
        type: int
      item_type: struct
      name: CoalescingBuffer
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/librawspeed/src/utilities/rstest/md5.h
    typedefs: []
    union: []
- function_names:
  - rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
  - rawspeed::rstest::RstestHashMismatch::anchor
  - operator()() const
  - rawspeed::rstest::imgDataHash
  - rawspeed::rstest::APPEND
  - rawspeed::rstest::img_hash
  - rawspeed::rstest::writePPM
  - rawspeed::rstest::writePFM
  - rawspeed::rstest::writeImage
  - rawspeed::rstest::process
  - rawspeed::rstest::results
  - rawspeed::rstest::usage
  - rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
  - rawspeed::rstest::RstestHashMismatch::anchor
  - operator()() const
  - rawspeed::rstest::imgDataHash
  - rawspeed::rstest::APPEND
  - rawspeed::rstest::img_hash
  - rawspeed::rstest::writePPM
  - rawspeed::rstest::writePFM
  - rawspeed::rstest::writeImage
  - rawspeed::rstest::process
  - rawspeed::rstest::results
  - rawspeed::rstest::usage
  - rawspeed::rstest::main
  - rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
  - rawspeed::rstest::RstestHashMismatch::anchor
  - operator()() const
  - rawspeed::rstest::imgDataHash
  - rawspeed::rstest::APPEND
  - rawspeed::rstest::img_hash
  - rawspeed::rstest::writePPM
  - rawspeed::rstest::writePFM
  - rawspeed::rstest::writeImage
  - rawspeed::rstest::process
  - rawspeed::rstest::results
  - rawspeed::rstest::usage
  - rawspeed::rstest::RstestHashMismatch::RstestHashMismatch
  - rawspeed::rstest::RstestHashMismatch::anchor
  - operator()() const
  - rawspeed::rstest::imgDataHash
  - rawspeed::rstest::APPEND
  - rawspeed::rstest::img_hash
  - rawspeed::rstest::writePPM
  - rawspeed::rstest::writePFM
  - rawspeed::rstest::writeImage
  - rawspeed::rstest::process
  - rawspeed::rstest::results
  - rawspeed::rstest::usage
  - rawspeed::rstest::main
  source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: create
        type: bool
      - name: force
        type: bool
      - name: dump
        type: bool
      item_type: struct
      name: options
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: start
        type: std::chrono::steady_clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 123
        line_start: 113
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: create
        type: bool
      - name: force
        type: bool
      - name: dump
        type: bool
      item_type: struct
      name: options
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: start
        type: std::chrono::steady_clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 123
        line_start: 113
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: create
        type: bool
      - name: force
        type: bool
      - name: dump
        type: bool
      item_type: struct
      name: options
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: start
        type: std::chrono::steady_clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 123
        line_start: 113
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: create
        type: bool
      - name: force
        type: bool
      - name: dump
        type: bool
      item_type: struct
      name: options
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    - fields:
      - name: start
        type: std::chrono::steady_clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 123
        line_start: 113
        source_file: /src/librawspeed/src/utilities/rstest/rstest.cpp
    typedefs: []
    union: []
- function_names:
  - BM_MD5
  - CustomArguments
  - BM_MD5
  - CustomArguments
  source_file: /src/librawspeed/src/utilities/rstest/MD5Benchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::md5::MD5Hasher::compress
  - rawspeed::md5::md5_hash
  - rawspeed::md5::hash_to_string
  - rawspeed::md5::MD5Hasher::compress
  - rawspeed::md5::md5_hash
  - rawspeed::md5::hash_to_string
  source_file: /src/librawspeed/src/utilities/rstest/md5.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RAWSPEED_READONLY::rawspeed_get_number_of_processor_cores
  - now
  - operator()() const
  - '& getFileContents()'
  - BM_RawSpeed
  - addBench
  - now
  - operator()() const
  - '& getFileContents()'
  - BM_RawSpeed
  - addBench
  - main
  source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: CPUClock
      pos:
        line_end: 73
        line_start: 62
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseSteadyClock
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseSteadyClock<false>
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseClockType
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields:
      - name: start
        type: typename Clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 106
        line_start: 95
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields:
      - name: Name
        type: rawspeed::ChecksumFileEntry
      - name: Storage
        type: "std::unique_ptr<std::vector<\n      uint8_t, rawspeed::DefaultInitAllocatorAdaptor<\n
          \                  uint8_t, rawspeed::AlignedAllocator<uint8_t, 16>>>>"
      - name: Content
        type: rawspeed::Buffer
      item_type: struct
      name: Entry
      pos:
        line_end: 126
        line_start: 110
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: CPUClock
      pos:
        line_end: 73
        line_start: 62
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseSteadyClock
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseSteadyClock<false>
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields: []
      item_type: struct
      name: ChooseClockType
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields:
      - name: start
        type: typename Clock::time_point
      item_type: struct
      name: Timer
      pos:
        line_end: 106
        line_start: 95
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    - fields:
      - name: Name
        type: rawspeed::ChecksumFileEntry
      - name: Storage
        type: "std::unique_ptr<std::vector<\n      uint8_t, rawspeed::DefaultInitAllocatorAdaptor<\n
          \                  uint8_t, rawspeed::AlignedAllocator<uint8_t, 16>>>>"
      - name: Content
        type: rawspeed::Buffer
      item_type: struct
      name: Entry
      pos:
        line_end: 126
        line_start: 110
        source_file: /src/librawspeed/src/utilities/rsbench/main.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::identify::find_cameras_xml
  - rawspeed::identify::find_cameras_xml
  - rawspeed::identify::find_cameras_xml
  - rawspeed::identify::find_cameras_xml
  - main
  source_file: /src/librawspeed/src/utilities/identify/rawspeed-identify.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __has_feature
  - rawspeed::MSan
  - rawspeed::MSan
  - rawspeed::MSan
  - '& operator=(const MSan&)'
  - '& operator=(MSan&&)'
  - ~MSan()
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan
  - rawspeed::MSan
  - rawspeed::MSan
  - '& operator=(const MSan&)'
  - '& operator=(MSan&&)'
  - ~MSan()
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::Allocated
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  - rawspeed::MSan::CheckMemIsInitialized
  source_file: /src/librawspeed/src/external/MemorySanitizer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __has_extension
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/librawspeed/src/external/MemorySanitizer.h
      type_or_value: __has_feature // Compatibility with pre-3.0 compilers.
    structs:
    - fields:
      - name: Allocated(const void* addr, size_t size)
        type: void
      - name: Allocated(CroppedArray1DRef<std::byte> row)
        type: void
      - name: Allocated(CroppedArray2DRef<std::byte> frame)
        type: void
      - name: CheckMemIsInitialized(const void* addr, size_t size)
        type: void
      - name: CheckMemIsInitialized(CroppedArray1DRef<std::byte> row)
        type: void
      - name: CheckMemIsInitialized(CroppedArray2DRef<std::byte> frame)
        type: void
      item_type: struct
      name: MSan
      pos:
        line_end: 68
        line_start: 40
        source_file: /src/librawspeed/src/external/MemorySanitizer.h
    - fields:
      - name: Allocated(const void* addr, size_t size)
        type: void
      - name: Allocated(CroppedArray1DRef<std::byte> row)
        type: void
      - name: Allocated(CroppedArray2DRef<std::byte> frame)
        type: void
      - name: CheckMemIsInitialized(const void* addr, size_t size)
        type: void
      - name: CheckMemIsInitialized(CroppedArray1DRef<std::byte> row)
        type: void
      - name: CheckMemIsInitialized(CroppedArray2DRef<std::byte> frame)
        type: void
      item_type: struct
      name: MSan
      pos:
        line_end: 68
        line_start: 40
        source_file: /src/librawspeed/src/external/MemorySanitizer.h
    typedefs: []
    union: []
- function_names:
  - THREAD_ANNOTATION_ATTRIBUTE__
  - CAPABILITY
  - GUARDED_BY
  - PT_GUARDED_BY
  - ACQUIRED_BEFORE
  - ACQUIRED_AFTER
  - REQUIRES
  - REQUIRES_SHARED
  - ACQUIRE
  - ACQUIRE_SHARED
  - RELEASE
  - RELEASE_SHARED
  - TRY_ACQUIRE
  - TRY_ACQUIRE_SHARED
  - EXCLUDES
  - ASSERT_CAPABILITY
  - ASSERT_SHARED_CAPABILITY
  - RETURN_CAPABILITY
  - EXCLUSIVE_LOCKS_REQUIRED
  - SHARED_LOCKS_REQUIRED
  - EXCLUSIVE_LOCK_FUNCTION
  - SHARED_LOCK_FUNCTION
  - UNLOCK_FUNCTION
  - EXCLUSIVE_TRYLOCK_FUNCTION
  - SHARED_TRYLOCK_FUNCTION
  - ASSERT_EXCLUSIVE_LOCK
  - ASSERT_SHARED_LOCK
  - LOCKS_EXCLUDED
  - LOCK_RETURNED
  source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SCOPED_CAPABILITY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
    - item_type: preproc_def
      name: NO_THREAD_SAFETY_ANALYSIS
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)
    - item_type: preproc_def
      name: PT_GUARDED_VAR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_var)
    - item_type: preproc_def
      name: GUARDED_VAR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(guarded_var)
    - item_type: preproc_def
      name: LOCKABLE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(lockable)
    - item_type: preproc_def
      name: SCOPED_LOCKABLE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/librawspeed/src/external/ThreadSafetyAnalysis.h
      type_or_value: THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
    structs: []
    typedefs: []
    union: []
- function_names:
  - __has_feature
  - rawspeed::ASan
  - rawspeed::ASan
  - rawspeed::ASan
  - '& operator=(const ASan&)'
  - '& operator=(ASan&&)'
  - ~ASan()
  - rawspeed::ASan::PoisonMemoryRegion
  - rawspeed::ASan::UnPoisonMemoryRegion
  - rawspeed::ASan::RegionIsPoisoned
  - rawspeed::ASan::PoisonMemoryRegion
  - rawspeed::ASan::UnPoisonMemoryRegion
  - rawspeed::ASan::RegionIsPoisoned
  - rawspeed::ASan
  - rawspeed::ASan
  - rawspeed::ASan
  - '& operator=(const ASan&)'
  - '& operator=(ASan&&)'
  - ~ASan()
  - rawspeed::ASan::PoisonMemoryRegion
  - rawspeed::ASan::UnPoisonMemoryRegion
  - rawspeed::ASan::RegionIsPoisoned
  - rawspeed::ASan::PoisonMemoryRegion
  - rawspeed::ASan::UnPoisonMemoryRegion
  - rawspeed::ASan::RegionIsPoisoned
  source_file: /src/librawspeed/src/external/AddressSanitizer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __has_extension
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/librawspeed/src/external/AddressSanitizer.h
      type_or_value: __has_feature // Compatibility with pre-3.0 compilers.
    structs:
    - fields:
      - name: PoisonMemoryRegion(const volatile void* addr, size_t size)
        type: void
      - name: UnPoisonMemoryRegion(const volatile void* addr, size_t size)
        type: void
      - name: RegionIsPoisoned(const volatile void* addr, size_t size)
        type: bool
      item_type: struct
      name: ASan
      pos:
        line_end: 55
        line_start: 38
        source_file: /src/librawspeed/src/external/AddressSanitizer.h
    - fields:
      - name: PoisonMemoryRegion(const volatile void* addr, size_t size)
        type: void
      - name: UnPoisonMemoryRegion(const volatile void* addr, size_t size)
        type: void
      - name: RegionIsPoisoned(const volatile void* addr, size_t size)
        type: bool
      item_type: struct
      name: ASan
      pos:
        line_end: 55
        line_start: 38
        source_file: /src/librawspeed/src/external/AddressSanitizer.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librawspeed/lnt/RawSpeed.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - process
  - usage
  - process
  - main
  source_file: /src/librawspeed/fuzz/libFuzzer_dummy_main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/rawspeed/main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/parsers/main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/common/DngOpcodes.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - '& operator=(const InputWrapper&)'
  - '& operator=(InputWrapper&&)'
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::RAWSPEED_READNONE
  - operator[](int i) const
  - rawspeed::produceBitstream
  - rawspeed::reparseBitstream
  - rawspeed::checkFlavourImpl
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - '& operator=(const InputWrapper&)'
  - '& operator=(InputWrapper&&)'
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::RAWSPEED_READNONE
  - operator[](int i) const
  - rawspeed::produceBitstream
  - rawspeed::reparseBitstream
  - rawspeed::checkFlavourImpl
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - '& operator=(const InputWrapper&)'
  - '& operator=(InputWrapper&&)'
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::RAWSPEED_READNONE
  - operator[](int i) const
  - rawspeed::produceBitstream
  - rawspeed::reparseBitstream
  - rawspeed::checkFlavourImpl
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::InputWrapper
  - '& operator=(const InputWrapper&)'
  - '& operator=(InputWrapper&&)'
  - rawspeed::InputWrapper::InputWrapper
  - rawspeed::InputWrapper::RAWSPEED_READNONE
  - operator[](int i) const
  - rawspeed::produceBitstream
  - rawspeed::reparseBitstream
  - rawspeed::checkFlavourImpl
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/librawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp
    typedefs: []
    union: []
- function_names:
  - RAWSPEED_READNONE::rawspeed_get_number_of_processor_cores
  source_file: /src/librawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/fuzz/librawspeed/fuzz/Common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CreateRawImage
  - CreateCFA
  source_file: /src/librawspeed/fuzz/librawspeed/fuzz/Common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::workloop
  - rawspeed::checkPump
  - rawspeed::checkDecoder
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::workloop
  - rawspeed::checkPump
  - rawspeed::checkDecoder
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::workloop
  - rawspeed::checkPump
  - rawspeed::checkDecoder
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::workloop
  - rawspeed::checkPump
  - rawspeed::checkDecoder
  - rawspeed::checkFlavour
  - rawspeed::LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 76
        line_start: 71
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 76
        line_start: 71
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 76
        line_start: 71
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 76
        line_start: 71
        source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp
    typedefs: []
    union: []
- function_names:
  - getCodeValues
  - getCodeSymbols
  - createHuffmanCode
  - createPrefixCode
  - createHuffmanPrefixCodeDecoderImpl
  - createHuffmanPrefixCodeDecoderImpl
  - createSimplePrefixCodeDecoderImpl
  - createSimplePrefixCodeDecoderImpl
  - createPrefixCodeDecoder
  source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - workloop
  - checkPump
  - checkFlavour
  - workloop
  - checkPump
  - checkFlavour
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - workloop
  - checkPump
  - checkFlavour
  - workloop
  - checkPump
  - checkFlavour
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getTrailingStrips
  - rawspeed::getTrailingStrips
  - rawspeed::LLVMFuzzerTestOneInput
  - rawspeed::getTrailingStrips
  - rawspeed::getTrailingStrips
  - rawspeed::LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV8Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DummyLJpegDecoder::decodeScan
  - DummyLJpegDecoder::DummyLJpegDecoder
  - DummyLJpegDecoder::decode
  - DummyLJpegDecoder::decodeScan
  - DummyLJpegDecoder::DummyLJpegDecoder
  - DummyLJpegDecoder::decode
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/librawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BM_pugixml_load_cameras_xml
  - BM_CameraMetaData
  - BM_pugixml_load_cameras_xml
  - BM_CameraMetaData
  source_file: /src/librawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BM_CopyPixels
  - BM_CopyPixels2DContiguous
  - BM_CopyPixels2DStrided
  - CustomArguments
  - BM_CopyPixels
  - BM_CopyPixels2DContiguous
  - BM_CopyPixels2DStrided
  - CustomArguments
  source_file: /src/librawspeed/bench/librawspeed/common/CommonBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM_Broadcast
  - rawspeed::BM_Copy
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM_Broadcast
  - rawspeed::BM_Copy
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM_Broadcast
  - rawspeed::BM_Copy
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM_Broadcast
  - rawspeed::BM_Copy
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/librawspeed/bench/librawspeed/adt/CoalescingOutputIteratorBenchmark.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::fixedLengthLoad
  - rawspeed::fixedLengthLoadOr
  - rawspeed::fixedLengthLoad
  - rawspeed::fixedLengthLoadOr
  - rawspeed::fixedLengthLoad
  - rawspeed::fixedLengthLoadOr
  - rawspeed::fixedLengthLoad
  - rawspeed::fixedLengthLoadOr
  - BM_Impl
  - CustomArguments
  - GEN
  - GEN_CALLABLE
  - GEN_TIME
  - GEN_WRAPPER
  - GEN_WRAPPER
  - BM_Impl
  - CustomArguments
  - GEN
  - GEN_CALLABLE
  - GEN_TIME
  - GEN_WRAPPER
  - GEN_WRAPPER
  source_file: /src/librawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - construct
  - construct_with_zeroinit
  - BM_std_vector
  - CustomArguments
  - BENCHMARK_CAPTURE_NAME
  - construct
  - construct_with_zeroinit
  - BM_std_vector
  - CustomArguments
  - BENCHMARK_CAPTURE_NAME
  source_file: /src/librawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator
  - rawspeed::JPEGStuffedByteStreamGenerator::JPEGStuffedByteStreamGenerator
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::getInput
  - rawspeed::BitVectorLengthsGenerator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getInput
  - rawspeed::BitVectorLengthsGenerator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getInput
  - rawspeed::BitVectorLengthsGenerator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  - rawspeed::getInput
  - rawspeed::BitVectorLengthsGenerator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - GEN
  - GEN_T
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields:
      - name: dataStorage
        type: "std::vector<int8_t,\n              DefaultInitAllocatorAdaptor<int8_t,
          std::allocator<int8_t>>>"
      - name: numBitsToProduce
        type: int64_t
      item_type: struct
      name: BitVectorLengthsGenerator
      pos:
        line_end: 115
        line_start: 79
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields:
      - name: dataStorage
        type: "std::vector<int8_t,\n              DefaultInitAllocatorAdaptor<int8_t,
          std::allocator<int8_t>>>"
      - name: numBitsToProduce
        type: int64_t
      item_type: struct
      name: BitVectorLengthsGenerator
      pos:
        line_end: 115
        line_start: 79
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields:
      - name: dataStorage
        type: "std::vector<int8_t,\n              DefaultInitAllocatorAdaptor<int8_t,
          std::allocator<int8_t>>>"
      - name: numBitsToProduce
        type: int64_t
      item_type: struct
      name: BitVectorLengthsGenerator
      pos:
        line_end: 115
        line_start: 79
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorLSB>
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB16>
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB32>
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields:
      - name: dataStorage
        type: "std::vector<int8_t,\n              DefaultInitAllocatorAdaptor<int8_t,
          std::allocator<int8_t>>>"
      - name: numBitsToProduce
        type: int64_t
      item_type: struct
      name: BitVectorLengthsGenerator
      pos:
        line_end: 115
        line_start: 79
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerBenchmark.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE2_CAPTURE
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE2_CAPTURE
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE2_CAPTURE
  - GEN
  - GEN_T
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::getMaybeCoalescingOutputIterator
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE2_CAPTURE
  - GEN
  - GEN_T
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorMSB>
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: BitStreamRoundtripTypes<BitstreamFlavorJPEG>
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    - fields: []
      item_type: struct
      name: C
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitVacuumerJPEGBenchmark.cpp
    typedefs: []
    union: []
- function_names:
  - rawspeed::getInput
  - rawspeed::getInput
  - rawspeed::NonJPEGByteStreamGenerator
  - rawspeed::getInput
  - rawspeed::getInput
  - rawspeed::NonJPEGByteStreamGenerator
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dataStorage
        type: "std::vector<uint8_t,\n              DefaultInitAllocatorAdaptor<uint8_t,
          std::allocator<uint8_t>>>"
      - name: numBytesGenerated
        type: int64_t
      item_type: struct
      name: JPEGStuffedByteStreamGenerator
      pos:
        line_end: 43
        line_start: 31
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    - fields:
      - name: dataStorage
        type: "std::vector<uint8_t,\n              DefaultInitAllocatorAdaptor<uint8_t,
          std::allocator<uint8_t>>>"
      - name: numBytesGenerated
        type: int64_t
      item_type: struct
      name: NonJPEGByteStreamGenerator
      pos:
        line_end: 61
        line_start: 45
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    - fields:
      - name: dataStorage
        type: "std::vector<uint8_t,\n              DefaultInitAllocatorAdaptor<uint8_t,
          std::allocator<uint8_t>>>"
      - name: numBytesGenerated
        type: int64_t
      item_type: struct
      name: JPEGStuffedByteStreamGenerator
      pos:
        line_end: 43
        line_start: 31
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    - fields:
      - name: dataStorage
        type: "std::vector<uint8_t,\n              DefaultInitAllocatorAdaptor<uint8_t,
          std::allocator<uint8_t>>>"
      - name: numBytesGenerated
        type: int64_t
      item_type: struct
      name: NonJPEGByteStreamGenerator
      pos:
        line_end: 61
        line_start: 45
        source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamJPEGUtils.h
    typedefs: []
    union: []
- function_names:
  - BM_BitStreamer
  - CustomArguments
  - registerPump
  - BM_BitStreamer
  - CustomArguments
  - registerPump
  - REGISTER_PUMP
  - main
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE1_CAPTURE
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE1_CAPTURE
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE1_CAPTURE
  - rawspeed::BM
  - rawspeed::CustomArguments
  - BENCHMARK_TEMPLATE1_CAPTURE
  source_file: /src/librawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BM_Cr2sRawInterpolator
  - CustomArguments
  - BM_Cr2sRawInterpolator
  - CustomArguments
  source_file: /src/librawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librawspeed/bench/librawspeed/bench/Common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - benchmarkDryRun
  - areaToRectangle
  source_file: /src/librawspeed/bench/librawspeed/bench/Common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compressChunk
  - BM_DeflateDecompressor
  - CustomArgs
  - GEN_E
  - GEN_PFS
  - GEN_PSS
  - compressChunk
  - BM_DeflateDecompressor
  - CustomArgs
  - GEN_E
  - GEN_PFS
  - GEN_PSS
  source_file: /src/librawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BM_UncompressedDecompressor
  - CustomArgs
  - GEN_INNER
  - GEN_F_BPS
  - GEN_F
  - GEN_U_BPS
  - GEN_U
  - GEN_BO
  - BM_UncompressedDecompressor
  - CustomArgs
  - GEN_INNER
  - GEN_F_BPS
  - GEN_F
  - GEN_U_BPS
  - GEN_U
  - GEN_BO
  source_file: /src/librawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rand
  - std::rand
  - std::rand
  source_file: /src/librawspeed/.ci/coverity_model.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
